java - 如何更改通知的内容而不重新创建它?

标签 java android notifications android-notifications

我有一条在一段时间后定期更新的通知。 Foreground 服务也与其相关联,因此它会不断显示。更新数据时,我必须使用 NotificationManager

用新通知重新创建通知
    NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

    notification.setContentText("Updated Text");
    notificationManager.notify(NOTIFY_ID, notification.build());

使用此方法时,每次收到通知时,都会在锁定屏幕上显示为新通知,并在收到通知时出现声音和振动。但我想摆脱这个。

是否可以在现有通知中更新数据,而无需重新创建它?例如,这是如何在天气应用程序中完成的,其中数据直接在当前通知中定期更新: Notification Widget

编辑

对于我的不准确,我深表歉意。事实证明,我正在更改旧的通知,感谢@0X0nosugar 的提示。我使用相同的 ID 进行通知更新,但每一秒我都会收到声音和振动,并且锁定屏幕上会出现连续的消息,表明我有新通知。虽然我没有收到新通知,但我正在更改相同的旧通知。

来 self 的应用程序的通知不断出现在锁定屏幕上。然而,在天气应用程序中没有观察到这一点。 And I got this

最佳答案

每当您在代码中使用任何不同的通知 ID 时,它都会生成一个新通知。

因此,使用静态 nofiy_id(例如在 strings.xml 中定义)并调用它。

或者像这样使用它:

notificationManager.notify(0, notification.build());

关于java - 如何更改通知的内容而不重新创建它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60082261/

相关文章:

Android - 将 Unicode 转换为 HTML 实体

java - 我怎样才能杀死 Android 上的整个应用程序?

JavaFX 无法在 MenuItem 上使用 onAction

java - 有没有办法使用 for 循环获取 RES > value > strings.xml 项值?

android - 在 Android 上运行时访问布局文件夹

java - 进度通知未取消

android - 取消android中所有使用闹钟服务的pendingIntent

javascript - 单击 Chrome 通知时转到已打开的选项卡

java - 如何在非Fragment类中使用FragmentManager

JavaFX Mac 菜单名称