在我的应用程序中,我正在应用推送通知并使用 notificationCompat 类制作它们。
我为每个通知分配了一个唯一的 ID,因此,每个通知都在通知栏中单独可见。
当用户使用挂起的意图单击通知时,我将用户引导至某个活动,在那里他可以看到所有先前的通知。(我从 mysql db 中读取它们)。
问题 1:如果用户仅单击其中一个通知,我希望清除状态栏中的所有通知。可以是任何随机的(假设它来自我的应用程序)。setAutoCancel() 方法,只删除按下的那个,我似乎不知道我将在哪里实现 cancelAll() 方法。
回答 :
@Override
protected void onResume()
{
super.onResume();
NotificationManager notificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.cancelAll();
}
问题2:由于每个通知都有唯一的ID,因此从单个应用程序发送多个通知,并且在没有用户检查的情况下,可能会导致通知栏中出现多个图标。一旦它们开始占用太多空间并且系统意识到没有足够的空间容纳它们,Android 就会开始收集它们并在它们上显示徽章编号。有什么方法可以从一开始就将它们结合起来吗?也就是说,每当我发送通知并且未选中它时,应该添加第二个通知,并且无论系统使用什么,都会在栏上显示一个带有数字 2 或 + 的图标。