我正在尝试在用户打开活动时创建堆叠的本地通知。我无法看到它们叠加在一起。所有这些都是单独出现的。我已经提到了许多其他堆栈溢出问题,但没有一个工作。以下是我的代码:
public class NotificationGroupActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
createNotifications();
}
private void createNotifications() {
final String GROUP_KEY_EMAILS = "group_key_emails";
NotificationManagerCompat notificationManager =
NotificationManagerCompat.from(this);
for(int i = 0; i<10;i++) {
// Build the notification, setting the group appropriately
Notification notif = new NotificationCompat.Builder(this)
.setContentTitle("New mail from " + i)
.setContentText("SUBJECT " + i)
.setSmallIcon(R.mipmap.ic_launcher)
.setGroup(GROUP_KEY_EMAILS)
.setGroupSummary(true)
.build();
// Issue the notification
notificationManager.notify(i + 10, notif);
}
}
}
答案 0 :(得分:0)
此处的问题是,您为自己发出的每个通知使用了不同的ID(.notify(int, Notification)
方法的第一个参数)。
正如documentation所说:
要在发出通知后更新此通知,请更新或创建NotificationCompat.Builder对象,从中构建Notification对象,并使用您之前使用的相同ID发出通知。
所以你必须替换
notificationManager.notify(i + 10, notif);
使用:
notificationManager.notify(0 /* Or any constant*/, notif);
考虑到这将替换旧通知,如果你想要实现类似什么Whatsapp或Inbox你必须为堆叠通知提供自己的自定义布局