今天给大家介绍关于通知栏的基本封装和遇到的一些坑,有人会问,通知栏还有什么坑呢?我用的好好的。 其实在今天以前我一直用都没什么问题,但是就在今天,后台用极光推送给我推送了一条消息,消息内容是:xxxxxx!。大伙看到这肯定觉得没什么吧。。。。。马丹 提前剧透了,,先聊聊通知栏的封装,很简单,直接一个工具类:
/**
* 创建通知, * 请在调用此方法时开启子线程
*
* @param context 上下文
* @param icon 通知图片
* @param title 通知标题
* @param content 通知主内容
* @param intent 意图
* @param id
* @param time 控制线程睡眠时间
*/
public static void createNotif(Context context, int icon, String tickerText,
String title, String content, Intent intent, int id, long time) {
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setAction(Intent.ACTION_MAIN);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
//intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
PendingIntent pendingIntent = PendingIntent.getActivity(context, id, intent, PendingIntent.FLAG_UPDATE_CURRENT);
mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context);
mBuilder.setContentTitle(title)
.setContentText(content)
.setContentIntent(pendingIntent)
.setWhen(System.currentTimeMillis())
.setPriority(Notification.PRIORITY_DEFAULT)
.setOngoing(false)
.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_SOUND)
.setSmallIcon(icon);
notification = mBuilder.build();
notification.flags = Notification.FLAG_ONGOING_EVENT;
notification.flags = Notification.FLAG_AUTO_CANCEL;
mNotificationManager.notify(id, notification);
try {
Thread.sleep(time);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
参数具体说明上面都写出来 了,如果还有不懂的欢饮留言,文章到此就画上句号了。。。。。。。。。。。艾玛,,忘记了要说是什么坑了。
请拿起手中的笔,认真做下笔记,文首说到后台给我推送了一条消息,消息内容是:“xxxxxxx!”,看上去就没什么毛病吧,然后我愉快的把这个内容写到上文提到的工具类中,嗯?通知呢?为什么显示不出来,机智的我开始debug,d d d,一步步把方法都走了一遍,可是还是没发现有什么问题,无奈,我只要傻瓜式搜索(百度、谷歌),可是都没找到什么有用的线索,经过一系列排查后,我将目标锁定到了内容上,我慢慢的改变内容的值,最后得出一个结论:内容不能包含有感叹号(包括中文和英文),得出这个结论我也是很纳闷啊。也没心思去管那些,抓紧完成项目,有兴趣的小伙伴可以查看源码,猜测是做了一些处理。不知道在别的手机上允不允许有这个,反正我女二号(魅族)说不行。