0

在我的应用程序中,我正在应用推送通知并使用notificationCompat类进行通知。通知栏+推送通知说明

因此,我为每个通知分配一个唯一的ID,因此每个通知在通知栏中单独显示。

当用户点击一个通知时,使用一个待定的意图,我正在引导用户走向某个活动,在那里他可以看到所有以前的通知。 (我从MySQL数据库读取它们)。

问题1:我想,如果用户点击只在其中一人在状态栏中的所有通知被清除。可以是任何随机的(因为它来自我的应用程序)。 setAutoCancel()方法只能删除被按下的那个,而我似乎不知道我会在哪里实现cancelAll()方法。

答案:

@Override 
protected void onResume() 
{ 
    super.onResume(); 
    NotificationManager notificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE); 
    notificationManager.cancelAll(); 
} 

问题2:由于每个通知具有唯一的ID,从个体应用程序发送几个通知,以及在从所述用户不检查的情况下,可能会导致通知栏中出现多个图标。 Android开始收集它们,并在他们开始占用太多空间时显示徽章号码,并且系统意识到他们没有足够的空间。 有没有什么方法可以将它们从一开始组合起来?也就是说,只要我发送通知,并且没有被选中,第二个应该被添加,并且无论系统使用什么,单个图标都应该出现在编号为2或+的条上。

+1

问题1:onResume显示的活动或应用程序中的每个活动。问题2:我不知道任何现有的简单方法来做到这一点,我通过手动跟踪我自己的数据库来做到这一点。 –

+0

@ChorWaiChun谢谢。我用答案更新了我的问题,请看看。关于第二个问题,你是检查每个用户,如果他们检查通知或否和计数?我没有完全理解你。 – tony9099

+0

我的应用程序基于聊天环境,每条消息我将在数据库中更新其读取和未读状态。所以我会在我的表格中填入未读数量的徽章数量。 –

回答

1

我想将问题1和问题2合并为一个答案:不显示多个通知!显示一个通知并在有多个未经检查的通知时进行更新。作为一名用户,如果我的通知栏被来自单个应用程序的通知垃圾邮件,我会非常恼火。想想GMail应用程序,它是通知,如果你会收到每个传入的电子邮件。

在4.1版本的设备上,您必须使用Normal View。如果您只有一条未经检查的消息,您可以立即在通知中显示消息的内容,并且如果您有多个消息,则可以执行类似GMail通知的操作,并显示“未经检查的消息”等内容。

在4.1+设备上,您可以使用Big View一次显示所有设备。