今天遇到一个很奇怪的问题,就是我们项目里的通知突然间失效了,具体表现是:通知栏能弹出通知提示,但是想通过它点击跳转到Activity确无法响应,也不消失,然后就抓耳挠腮的开始一点点debug调试找原因所在,始终无所收获。后来我又把项目里的有关通知的代码(一共也没有多少)单独写成一个demo,发现也还是不行。经历了各种百度,查资料,终无所或,后来找了个正常的demo,反复对比,一点点修改实验,终于被我找到了问题所在,下面我就开始讲述一下问题所在。
首先,先展示一下有问题的代码:
NotificationManager nm = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
Notification.Builder builder = new Notification.Builder(mContext);
builder.setContentTitle(title);
builder.setContentText(content);
Notification n = builder.getNotification();
if (PublicUtils.ISDEMO) {
n.icon = R.drawable.icon_main;
} else {
n.icon = R.drawable.icon_main;
}
n.tickerText = title;
if (awoketype == 2) {// isSound表示需要声音提示
n.defaults |= Notification.DEFAULT_SOUND;// 调用默认声音
} else if (awoketype == 1) {// 震动
n.defaults |= Notification.DEFAULT_VIBRATE; // 调用系统默认震动,需要权限
long[] vibrate = {0, 100, 200, 300}; // 自定义震动
n.vibrate = vibrate;
} else {//铃声加震动
n.defaults |= Notification.DEFAUL