0

在我的应用程序中,我正在应用推送通知并使用 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 或 + 的图标。

4

1 回答 1

1

我想将问题 1 和 2 合并为一个答案:不要显示多个通知!当您有多个未选中的通知时,显示一个通知并更新它。作为用户,如果我的通知栏被来自单个应用程序的通知发送垃圾邮件,我会非常恼火。想想 GMail 应用程序,如果您每收到一封电子邮件,它就会收到通知。

在 4.1 之前的设备上,您必须使用Normal View。如果您只有一封未检查的邮件,您可以立即在通知中显示邮件的内容,如果您有多个邮件,您可以执行类似 GMail 通知的操作并显示“5 封未检查邮件”之类的内容。

在 4.1+ 设备上,您可以使用大视图一次显示所有设备。

于 2013-05-22T08:02:00.730 回答