我有几个同时发生的事件。我需要以串行方式向用户显示多条通知消息。
理想的情况是,每条通知消息将轮流显示,持续时间约为 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
:更改消息。
每次您使用 sendNotification(message)
重新发布 Notification
时,Notification
ticker
文本都会更新.
例如,如果您的假设收件箱中有一个项目通知,您可以发布如下消息:
Message from Joe.
当您收到多条新消息时,将其更改为:
You have (n) messages.
当用户按下通知
时,您应该重定向到Activity
,该 Activity 以ListView
或GridView之类的方式显示所有内容
,显示您的所有消息。
关于android - 显示具有单个 ID 的多条通知消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15953195/