如何计算Android中的通知数量和显示单个图标?

我有多个Android通知,但是当我从我的Web服务器发送消息时,android设备会在状态栏上创建一个新的通知图标。 我想计算未读通知的数量,在statusbar上显示单个图标,并且在读取通知时,通知必须更改未读通知计数。 我该怎么做? 在这张图片中看起来像“3 Others”: 通知图标

在这里查看答案: 如果存在多个通知,如何提供计数器

你只需要设置Notification.number

 Notification notification = new Notification(R.drawable.direction, "Cool Notification", System.currentTimeMillis()); /********LIKE THIS*********/ notification.number = notificationCount++; /********LIKE THIS*********/ notification.setLatestEventInfo(context, "Cool Notification Title", "updated notificaiton message", null); NotificationManager nm = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE); nm.notify(R.id.my_motification, notification); 

您必须通过NotificationManager.notify方法发送通知,始终具有相同的ID。 正如文档所述,id是应用程序中该通知的唯一标识符。 如果您重复使用相同的ID,它将只更新该通知的文本和编号。

要检查用户何时单击通知,您需要提供PendingIntent(请参阅教程 )。 要检查用户何时清除通知,您需要使用仅在Api Level 11中可用的Notification.Builder 。

那么这些代码对我有用:

 Notification n = new Notification(R.drawable.yourownpicturehere, getString(R.string.noticeMe), System.currentTimeMillis()); PendingIntent i=PendingIntent.getActivity(this, 0, new Intent(this, NotifyActivity.class),0); n.setLatestEventInfo(getApplicationContext(), getString(R.string.title), getString(R.string.message), i); n.number=++count; n.flags |= Notification.FLAG_AUTO_CANCEL; n.flags |= Notification.DEFAULT_SOUND; n.flags |= Notification.DEFAULT_VIBRATE; n.ledARGB = 0xff0000ff; n.flags |= Notification.FLAG_SHOW_LIGHTS; // Now invoke the Notification Service String notifService = Context.NOTIFICATION_SERVICE; NotificationManager mgr = (NotificationManager) getSystemService(notifService); mgr.notify(NOTIFICATION_ID, n); 

请点击此链接获取完整教程。
我认为n.number=++count; 是负责计算通知的人

每个数字都需要一个不同的位图,并设置图标以显示与剩余通知数相对应的位图。

要跟踪通知,您只需在SharedPreferences中设置一个计数器,在每个新通知中添加一个计数器,并在读取通知时减少一个(如果一次显示所有通知,则减少为零)。