Android 清除特定通知

Android 清除特定通知,android,push-notification,android-notifications,Android,Push Notification,Android Notifications,例如,我有五个类别,A,B,C,D,E 收到2个A类推送通知 收到3个B类推送通知 收到4个C类推送通知 再次收到2个A类推送通知 因此,共收到11份通知 如果我点击了A类通知中的任何一个,那么所有A类通知都将被删除。其余的B和C通知(7个通知)应在通知部分提供 任何人都知道如何做到这一点,有任何例子可以处理这种情况吗 这在安卓系统中可能吗?如果您收到的推送通知没有数据部分,那么就我所知,您运气不好,因为这些都是由系统管理的。您的应用程序在到达时不会收到通知(因此您无法跟踪显示的数量),只有在单

例如,我有五个类别,A,B,C,D,E

收到2个A类推送通知

收到3个B类推送通知

收到4个C类推送通知

再次收到2个A类推送通知

因此,共收到11份通知

如果我点击了A类通知中的任何一个,那么所有A类通知都将被删除。其余的B和C通知(7个通知)应在通知部分提供

任何人都知道如何做到这一点,有任何例子可以处理这种情况吗


这在安卓系统中可能吗?

如果您收到的推送通知没有
数据部分,那么就我所知,您运气不好,因为这些都是由系统管理的。您的应用程序在到达时不会收到通知(因此您无法跟踪显示的数量),只有在单击一个时才会收到通知

通过
FirebaseMessagingService
实现的
onMessageReceived
回调启动应用时,您需要通知。要实现这一点,您的通知需要有
数据
负载

在这个回调中,您为自己发出本地通知,从而为每个通知提供一个
NotificationChannel
和一个唯一的id

然后,您就可以完全控制哪些通知要取消,哪些通知要保持活动状态。 您的服务应该跟踪在一个简单列表中显示的通知,该列表包含按通道(=类别)列出的所有ID

也许这些片段可以帮助您:

适用于Android 8及更高版本 请阅读新的
通知频道的详细文档,网址为

对于旧版本 只需保留服务实现中显示的所有通知的列表,并取消所有要关闭的通知

NotificationManager notificationManager = (NotificationManager)
    context.getSystemService(Context.NOTIFICATION_SERVICE);
if (notificationManager != null)
    notificationManager.cancel(id);