我对了解setGroup()
方法的目标有些麻烦。
正如文档所说:
...分组通知可能会显示在支持此类渲染的设备上的群集或堆栈中....
这是第一个问题:
我创建了一个显示自定义短信的方法:
public static void showNotification(Context context, String title, String message, PendingIntent pendingIntent) {
notificationMessages.add(message);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
.setContentTitle(title)
.setContentText(message)
.setAutoCancel(true)
// .setGroupSummary(true)
.setSmallIcon(R.drawable.ic_launcher)
.setContentInfo("" + (notificationMessages.size()))
/*.setGroup(++i + "")*/;
NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle();
inboxStyle.setBigContentTitle(title);
for (int i = 0; i < notificationMessages.size(); i++) {
inboxStyle.addLine(notificationMessages.get(i));
}
builder.setContentIntent(pendingIntent);
builder.setStyle(inboxStyle);
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = builder.build();
mNotificationManager.notify(0, notification);
}
并使用notificationID
,setGroup
和setGroupSummary
方法进行游戏。
public static void showNotification(Context context, String title, String message, PendingIntent pendingIntent) {
notificationMessages.add(message);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
.setContentTitle(title)
.setContentText(message)
.setAutoCancel(true)
// .setGroupSummary(true)
.setSmallIcon(R.drawable.ic_launcher)
.setContentInfo("" + (notificationMessages.size()))
.setGroup(GROUP_KEY);
NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle();
inboxStyle.setBigContentTitle(title);
for (int i = 0; i < notificationMessages.size(); i++) {
inboxStyle.addLine(notificationMessages.get(i));
}
builder.setContentIntent(pendingIntent);
builder.setStyle(inboxStyle);
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = builder.build();
mNotificationManager.notify(new Random().nextInt(3), notification);
}
但是,没有视觉上的变化 如果我评论或不评论。因此,对于理解这种方法的目的,这是困难的。
答案 0 :(得分:3)
来自官方文档:
http://developer.android.com/preview/features/notification-updates.html
Android N还允许您将类似的通知捆绑显示为单个通知。为了实现这一点,Android N使用现有的NotificationCompat.Builder.setGroup()方法。用户可以展开每个通知,并从通知阴影中单独执行每个通知的回复和解除等操作。
意味着setGroup
只会在设备支持时产生影响。
支持它的设备是:
以下博客文章展示了这些如何在Android N上运行:https://medium.com/exploring-android/android-n-introducing-upgraded-notifications-d4dd98a7ca92
贝洛是一个群组的渲染图:
这意味着setGroup
对于运行API23以下的任何设备(包括Marshamallow,Lollipop,KitKat等)没有任何影响。
答案 1 :(得分:0)
setGroupSummary
在牛轧糖之前支持设备上的分组通知。它将单个通知替换为1个摘要通知。
在Nougat +上,系统创建一个普通组,该组不是您的setGroupSummary(true)