我们知道通知栏可以通过 PendingIntent 设置点击响应(也可以通过 RemoteView设置),如下:
Intent intent = new Intent(mContext, NotificationReceiver.class);
intent.setAction(NOTIFICATION_BROADCAST_ACTION);
PendingIntent pendingIntent = PendingIntent
.getBroadcast(mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
notification.contentIntent = pendingIntent;
但是,以上这样写,如果你的广播NotificationReceiver是动态注册的,就会无法响应点击事件,这个真的好坑,解决:Intent 换一种 new() 方式
Intent intent = new Intent(NOTIFICATION_BROADCAST_ACTION);
PendingIntent pendingIntent = PendingIntent
.getBroadcast(mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
notification.contentIntent = pendingIntent;
以上就可以响应点击事件。