将新通知添加到组时,Android会删除组通知中的通知数据

Posted

技术标签:

【中文标题】将新通知添加到组时,Android会删除组通知中的通知数据【英文标题】:Android removing notification data in group notification when new notification is added to the group 【发布时间】:2020-04-19 16:45:21 【问题描述】:

我的群组通知工作正常,但是,我注意到几个小时后(一段时间不使用设备时)当有新通知来时,当通知展开时消息内容消失,即@ 987654327@ 文字消失。我知道这不是请求代码问题,因为所有请求代码都是唯一的,我可以正常回复通知。

需要注意的是,在通知消失后,下一个通知,如果设备处于活动状态(不一定是应用程序),则该通知在展开时将显示其正常文本。这似乎仅在设备和/或应用程序一段时间未使用时才会发生。这是安卓系统的问题吗?

下面是描述行为的图片快照:


第一次通知


第二个通知进来了。


展开两个通知,您可以看到它们的所有消息都消失了。


代码:请注意,我只发送一次摘要通知。

// Normal notification
int uniqueRequestCode = RandomUser.getUniqueRequestCode();
PendingIntent pendingIntent = PendingIntent.getActivity(
        this, uniqueRequestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Notificatio notification = new NotificationCompat.Builder(getApplicationContext(), MESSAGE_CHANNEL_ID)
    .setSmallIcon(R.drawable.ne1_white_logo_crop)
    .setContentTitle(title)
    .setContentText(body)
    .setStyle(new NotificationCompat.BigTextStyle().bigText(body))
    .setPriority(NotificationCompat.PRIORITY_DEFAULT)
    // Set the intent that will fire when the user taps the notification
    .setContentIntent(pendingIntent)
    .addAction(action)
    .setGroup(GROUP_KEY_MESSAGE)
    //.setGroupAlertBehavior(groupAlert)
    .setColor(Color.BLACK)
    .setAutoCancel(true)
    .build();

// Summary notification 
uniqueRequestCode = RandomUser.getUniqueRequestCode();  
PendingIntent pendingIntent = PendingIntent.getActivity(
    this, uniqueRequestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Notification summaryNotification = new NotificationCompat.Builder(this, MESSAGE_CHANNEL_ID)
        .setSmallIcon(R.drawable.ne1_white_logo_crop)
        // Specify which group this notification belongs to
        .setGroup(GROUP_KEY_MESSAGE)
        // Set this notification as the summary for the group
        .setGroupSummary(true)
        .setContentIntent(pendingIntent)
        .build();

【问题讨论】:

【参考方案1】:

根据this***的回答,android默认只允许展开一个通知。

我现在使用的足够了,并且保留了扩展通知是.setStyle(new Notification.MessagingStyle...。对于希望扩展组中的多个通知的情况,我强烈建议使用MessagingStyle。至于BigTextStyle().bigText(),我不知道正确的程序,所以我放弃了。

【讨论】:

以上是关于将新通知添加到组时,Android会删除组通知中的通知数据的主要内容,如果未能解决你的问题,请参考以下文章

将新文本添加到文件时如何获得通知?

为啥通知组在android中不起作用?我做错了啥?

如何检测在 Android 中单击了通知包/组?

Gnus for Emacs 中的新邮件通知

Android:从通知栏中删除通知

推送通知在android中获得多次