Android 8.0 Notification PendingIntent 发送广播的点击事件不管用。。。

1,494 阅读1分钟

原来写的是这样的

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context,channelId);

Intent intent = new Intent("com.xx.xx.push.NotificationClickReceiver");

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

Bundle bundle = new Bundle();
//传递的对象数据
bundle.putSerializable("notificationMessage", notificationObj);
intent.putExtras(bundle);

NotificationManager notificationManager = context.getNotificationManager();
PendingIntent mPI = PendingIntent.getBroadcast(context, 0, intent,PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(mPI);
notificationManager.notify(0, mBuilder.build());

Intent intent = new Intent("com.xx.xx.push.NotificationClickReceiver");注意这句,Android O以后就强制使用显式Intent

改成Intent intent = new Intent(context,NotificationClickReceiver.class);