我有多个 Android 通知,但是当我从 Web 服务器发送消息时,Android 设备会在状态栏上创建一个新的通知图标。我想计算未读通知的数量,statusbar
用单个图标显示它,当阅读通知时,通知必须更改未读通知计数的数量。我该怎么做?在这张图片中看起来像“3 Others”:通知图标
问问题
28352 次
3 回答
9
在此处查看答案:如果存在多个通知,如何提供计数器
你只需要设置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 。
于 2011-09-06T08:31:06.433 回答
3
那么这段代码对我有用:
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;
是负责计算通知的人
于 2015-06-14T12:22:57.077 回答
-1
您需要为每个数字使用不同的位图,并设置图标以显示与剩余通知数量相对应的位图。
要跟踪通知,您可以简单地在 SharedPreferences 中设置一个计数器,在每个新通知中添加一个计数器,并在读取通知时减一(如果一次显示所有通知,则减为零)。
于 2011-06-17T04:14:05.073 回答