Android-NotificationCompat.Builder 使用 setGroup(group) 堆叠通知不起作用

2024-03-27

我想使用 setGroup 堆叠通知(如下所述:https://developer.android.com/training/wearables/notifications/stacks.html https://developer.android.com/training/wearables/notifications/stacks.html) 基本上,我使用 0 作为通知 ID(始终相同)并且builder.setGroup("test_group_key")但新的通知总是会取代之前的通知。 可能是什么问题呢 ?

Code:

public BasicNotifier(Context context) {
    super(context);
    notifManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

    mBuilder = new NotificationCompat.Builder(context)
        .setSmallIcon(R.drawable.ic_launcher)
        .setSound(alarmSound)
        .setAutoCancel(true);

    stackBuilder = TaskStackBuilder.create(context);
    stackBuilder.addParentStack(getParentActivityClass());

}

public void showNotification(String title, String text, Intent intent, Class cls) {
    if (text.length() > 190)
        text = text.substring(0, 189) + "...";

    mBuilder.setTicker(text).setContentText(text).setContentTitle(title);

    Intent notificationIntent = intent == null ? new Intent() : new Intent(intent);
    notificationIntent.setClass(getContext(), cls);
    stackBuilder.addNextIntent(notificationIntent);

    PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
    mBuilder.setContentIntent(resultPendingIntent);
    mBuilder.setGroup("test_group_key");

    Notification notif = mBuilder.build();
    notif.flags |= Notification.FLAG_AUTO_CANCEL;

    notifManager.notify(replaceOnNew ? 0 : nextId++, notif); // replaceOnNew
                                                                // is "true"

    Log.i(TAG, "Notification shown: " + nextId + " = " + title);
}

EDIT:

使用NotificationManagerCompat时似乎存在问题,通知根本不显示。

  NotificationManagerCompat notificationManager =
            NotificationManagerCompat.from(getContext());
  notificationManager.notify(id, notif);

您没有正确使用通知 ID。

“要设置通知以便更新,请通过调用NotificationManager.notify(ID, notification) 使用通知ID 发出通知。要在发出通知后更新此通知,请更新或创建一个NotificationCompat.Builder 对象,构建从中获取一个通知对象,并使用您之前使用的相同 ID 发出通知。”

来自 Android 开发者 http://developer.android.com/training/notify-user/managing.html

因此,在您的情况下,如果您想在组中堆叠通知,则需要为每个新通知指定一个新 ID。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android-NotificationCompat.Builder 使用 setGroup(group) 堆叠通知不起作用 的相关文章

  • 如何删除导航视图不必要的顶部填充?

    标题和图中显示的第一个项目之间有不必要的顶部填充 如何将其去除 你可以在这里找到源代码 https github com chrisbanes cheesesquare https github com chrisbanes cheeses
  • kotlin中的三元运算符[重复]

    这个问题在这里已经有答案了 我可以用java写 int i 10 String s i 10 Ten Empty 即使我可以将它传递到方法参数中 callSomeMethod i 10 Ten Empty 如何将其转换为 kotlin 在
  • 在通知声音中暂停/恢复媒体播放器

    很容易检测到电话何时打入 通过phoneStateListener 但是其他通知声音 例如电子邮件或短信 又如何呢 在某些设备上 这些通知听起来很静音 但不会暂停任何当前正在运行的 mediaPlayer 实例 这对用户来说很烦人 理想情况
  • 在 Android 中使用 Facebook Achievement API

    我知道这可能看起来像一个通用问题 但找到有关该主题的信息似乎非常困难 因此 如果某个地方存在完整的示例 指南 源代码链接 我将不胜感激 我正在开发一款 Android 游戏 希望集成 Facebook 成就 我想要的只是在用户完成某个谜题时
  • 喷气背包组合中的波纹效果无法正常工作

    我正在研究jetpack compose中的连锁反应 我提供了我的颜色 单击视图后 它会在一段时间后显示不同类型的颜色 在按下状态时显示为深灰色 binding itemComposable setContent Column modifi
  • Android 在 ROOM 数据库中插入大量数据

    我有大约 10 个模型 每个模型都有超过 120K 行和 90 列的记录 其中包含双数组值 在 Room 中插入任何模型都需要超过 125 130 秒 任何人都可以建议我需要做什么才能使用一些批量插入技术来保存所有这些 120K 该技术大约
  • WebView ssl 错误

    对不起我的英语不好 我需要加载 url https 我有一些问题 当我尝试加载页面时 webView 给我错误 primary error 3 certificate Issued to CN my site com Issued by C
  • Genymotion Google Nexus 6P 7.0.0 与 Open_Gapps 手臂 7.0.0

    With Genymotion 2 8 0 我已经安装了谷歌 Nexus 6P 7 0 0API 级别为 24 的设备 启动设备后 我刷新了 ARM 虚拟转换器并重新启动了设备 然后 我从下载 open gapps用于 Playstore
  • Cordova Android 应用程序中的网页不可用

    编辑 我一直在解决这个问题并回顾我的所有步骤 我很乐意缩小这个问题的规模 并在令人困惑的情况下获得更多确切的细节 目前 我觉得 Keycloak 似乎只想将我重定向到 https 据我所知 这应该是 Wildfly 服务器配置问题 编辑 我
  • 如何从 Java 类调用 Kotlin 类

    我需要将意图从 java 活动传递到 Kotlin 活动 Java活动ProfileActivity class Intent selectGameIntent new Intent ProfileActivity this kotlin
  • 处理网络视图中的链接

    我有我的WebView加载网络视图中的所有链接 但是当我选择电子邮件链接时 它会尝试将其加载到网络视图中 而不是在手机上启动电子邮件应用程序 我该如何解决这个问题 链接是mailto 电子邮件受保护 cdn cgi l email prot
  • Android 布局崩溃

    I use a XWalkView https crosswalk project org 加载网页和视频查看器 https github com Bilibili ijkplayer在我的应用程序中播放实时视频 我希望 IjkVideoV
  • 为什么Android和IOS11无法通过NFC通信

    目前正在使用 React Native 并尝试使用反应本机 NFC ios https www npmjs com package react native nfc ios and 反应本机 NFC https github com Nov
  • 带有 DialogFragment 的上下文操作栏

    我一直在尝试实现一个上下文操作栏和一个对话框片段 类似于android中的下载小部件 我尝试过设置android windowActionModeOverlay主题要真实 但这似乎不起作用 有什么办法我可以实现它吗 您在屏幕截图中看到的下载
  • OkHttp javax.net.ssl.SSLPeerUnverifiedException:主机名domain.com未验证

    我几天来一直在努力让它发挥作用 我正在尝试通过以下方式连接到我的服务器https带有自签名证书 我认为现在没有任何页面或示例是我未读过的 我做了什么 按照本教程创建了 bks 密钥库 http blog crazybob org 2010
  • 当设备位于我的用户目录中时,为什么 Android 模拟器会报告“未知虚拟设备”?

    我安装了所有Android开发先决条件 http developer android com sdk requirements html 我通过 Eclipse 创建了一个虚拟设备 并尝试在该设备中运行 Hello World 示例应用程序
  • java.net.ServerSocket.accept () 在 Android 上不返回

    我正在尝试找到一种方法来远程登录到未root的机器人 我有INTERNET权限处于活动状态 我的设备与我的设备连接在同一网络上Mac OS X通过 WiFi 我可以 ping 通我打开的端口 在最初的实验中 我让它在有根测试设备上工作 但我
  • 如何指定使用Glide for Android加载图片的重试次数?

    我正在为我的 Android 应用程序使用 glide 库 我想告诉它在放弃并显示错误占位符图像之前重试获取图像 X 次 可能使用指数退避 知道如何做到这一点吗 顺便说一句 我正在使用 Volley 集成 使用您自己的资源解码器 我仅加载本
  • smoothScrollToPosition() 在 Android ICS 中只能滚动到一半?

    在 Gingerbread 中 我使用 smoothScrollToPosition 一次滚动数十个项目没有任何问题 在我的 Nexus S 升级到 Ice Cream Sandwich 后 我注意到无论我在 smoothScrollToP
  • Gradle 找不到 Android Compose 编译器

    我对这个问题感到非常困惑 我的 gradle 文件中有以下几行 implementation androidx compose runtime runtime 1 0 0 alpha04 implementation androidx co

随机推荐