从android 12开始,从BroadcastReceiver和服务启动活动不再是可能的,根据文档,这称为通知蹦床限制,现在我们应该使用pendingintent将我们直接带到相关的活动,这里的问题是我我习惯于忽略广播接收器中的通知
private class NotificationBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
final int NOTIFICATION_ID = intent.getIntExtra("notificationId",0);
Log.v("NOTIFICATION_ID",Integer.toString(NOTIFICATION_ID));
mNotificationManager.cancel(NOTIFICATION_ID);
但是现在我没有在没有广播接收器的情况下在哪里取消通知......在单击添加到我的 notificationBuilder 的 actionButton 后,通知不会被取消并且仍然继续,无论如何要管理它?
启动
PendingIntent
的Intent
可用于取消Notification
。只需将 NotificationId
添加到用于启动 Intent
的 Activity
中,Activity
即可取消 Notification
或 onCreate()
中的 onNewIntent()
。