我想将通知分组到摘要中。
我通过为所有通知提供单个ID来实现此目的。这样android就不会创建新的通知,而是更新现有的通知(简化代码):
Notification summaryNotification = new NotificationCompat.Builder(this)
.setGroupSummary(true)
.setDefaults(Notification.DEFAULT_ALL)
.setStyle(new NotificationCompat.InboxStyle()
.addLine(msg)
.setBigContentTitle("My App")
.setSummaryText("FooBar"))
.build();
mNotificationManager.notify(uuid, summaryNotification);
UUID始终相同,因此应更新通知。但是,当新通知到达时,setStyle
似乎会被覆盖。
这导致旧的addLine(msg)
消失。但是我希望在没有某种通知管理器服务器端的情况下添加新消息。
有任何想法或建议吗?
答案 0 :(得分:4)
我认为您误解了通知构建器。
NotificationCompat.Builder构建包含所有内容的完整通知。 重复使用相同的ID只会告诉通知管理器使用相同的ID替换现有的通知:(Source)
[...]更新或创建NotificationCompat.Builder对象,从中构建Notification对象,并使用您之前使用的相同ID发出通知。如果以前的通知仍然可见,系统会从通知对象的内容中更新。
因此addLine
不是对现有通知执行的操作,而是在您创建的新构建器上执行的操作(当时为空)。
如果您想使用收件箱样式向现有通知添加一行,则需要