首页 > 解决方案 > 以编程方式取消子通知时,通知组的摘要不会自动关闭

问题描述

我最近一直在为通知而苦苦挣扎。

点击后通知可以很容易地被关闭使用

notificationBuilder.setAutoCancel(true);

对这些单独的通知进行分组需要汇总通知。只要存在子通知,摘要通知就不会按原样显示(例如,标题、文本和操作被忽略)。当所有内容都被单独解除后,将完全显示摘要通知及其文本和操作。这感觉很奇怪:为什么我们在单独查看所有通知之后需要摘要?谁知道......无论如何,我们可以摆脱这种意想不到的行为使用

summaryNotificationBuilder.setAutoCancel(true);

现在,当他们的操作被点击时,通知不会自动关闭,即使notificationBuilder.setAutoCancel(true)已被调用。如如何在单击操作后关闭通知中所述,我们需要跟踪显示通知时提供的唯一 ID

notificationManager.notify(uniqueNotificationId, notificationBuilder.build());

从接收活动或广播接收器,我们会调用

notificationManager.cancel(uniqueNotificationId);

老实说:这太可怕了……但这似乎是要走的路。我一直无法找到任何好的替代方案。现在,像前面所说的那样关闭通知似乎会干扰summaryNotificationBuilder.setAutoCancel(true). 当我通过单击或滑动它们单独关闭所有子通知时,摘要通知将自动取消。但是,当我从其中任何一个触发动作时(从而触发创建Intent传递 extra的机制uniqueNotificationId,然后NotificationManagerCompat.from(context).cancel(uniqueNotificationId)从接收活动或广播接收器调用,那么即使使用了摘要通知,也不会自动取消summaryNotificationBuilder.setAutoCancel(true)

关于如何解决这个问题的任何想法?

例如,我没有找到一种方法来以编程方式确定仍有多少子通知可见,以便手动关闭摘要通知。编辑:实际上,现在我正试图无条件地关闭摘要通知......但没有成功。

标签: androidnotificationsandroid-notifications

解决方案


推荐阅读