因此,我看到的一个策略是将计数责任直接推迟到数据库。我必须提供一个方法,在数据库上返回我有多少过期的提醒,将其作为额外内容放入启动我的接收器的待处理意图中。从那里,我可以解包额外内容并相应地设置通知。这样,我得到了所需的信息,并且可以将通知内容建模为显示未触及的提醒数量。在图标旁边添加计数徽章似乎不可能,因为默认的Android不支持,但可以使用第三方解决方案或使用众所周知的Android UI,如三星的TouchWiz或Xperia中的UI。在网上搜索,似乎实现这一点又是另一回事。我更喜欢不这样做,只需通过我的内容显示已过期提醒的计数。
我希望这能帮助那些遇到类似问题的人,他们需要检索或存储给定唯一应用程序通知ID的通知计数。希望这可以帮到你!如果您的目标API级别为18+,那么您很幸运,因为您可以提供一个NotificationListenerService
来访问当前通知并/或在创建或解除时收到警报。
否则,您可以使用注册AccessbilityService
并侦听AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED
事件的旧技巧。这是这种方法的一个很好的例子。
你可以使用这个例子,它对我有效。
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);
因此,每次显示通知时,您都可以增加notification.number。