我有几个同时发生的事件。我需要以串行方式向用户显示多条通知消息。
理想的情况是,每条通知消息将轮流显示,持续时间约为 2 秒。
我能得到的最接近的是使用多个 id。但是,使用多个 id 会产生我不想要的副作用。最终状态栏上会同时显示多条通知消息。
这使得用户的状态变得混乱,这不是我的本意。
使用多个 ID(最终会显示多个混乱消息)
int id = 0;
private void sendNotification(String message) {
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this.getActivity())
.setSmallIcon(R.drawable.ic_notification)
.setContentTitle("MyApp")
.setTicker(message)
.setAutoCancel(true)
.setOnlyAlertOnce(true)
.setDefaults(Notification.DEFAULT_SOUND)
.setContentText(message);
final NotificationManager mNotificationManager =
(NotificationManager) this.getActivity().getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(id++, mBuilder.build());
}
但是,如果我不使用多个 id,而是使用单个 id,如果同时发出多个通知请求,则只会显示 1 条消息。每条消息都会轮流显示。没有消息丢失。
如果您只需要一个Notification
在状态栏中,但您希望该消息指示所有应用程序的通知,那么您需要管理单个Notification
通过更改消息。
每次您重新发布Notification
with sendNotification(message)
, the Notification
ticker
文本将被更新。
例如,如果您的假设收件箱中有一个项目通知,您可以发布如下消息:
来自乔的消息。
当您收到多条新消息时,将其更改为:
您有 (n) 条消息。
当用户按下Notification
,您应该重定向到Activity
以类似的方式显示所有内容ListView
or GridView
,显示您的所有messages.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)