同一活动的多个通知

Posted

技术标签:

【中文标题】同一活动的多个通知【英文标题】:Multiple notifications to the same activity 【发布时间】:2011-08-29 07:27:39 【问题描述】:

我有一个正在从通知栏打开的活动,但是当我执行NotificationManager.notify(...) 时,我给意图一个不同的包,以便每个通知打开相同的活动,但从其他数据库中获取互相信息。

但是当我尝试输入任何通知(例如,有 3 个通知)时,它们都将我发送到与最后一个具有相同捆绑包的活动。在尝试了一些标志之后,我真的不知道问题出在哪里(一些标志使通知进入带有第一个包的活动)。

我正在按照他们在the tutorial 中使用它的方式。

【问题讨论】:

你能分享一些你正在创建待处理意图的代码吗?我有一个类似的问题,这是因为它们是框架重用的未决意图。 【参考方案1】:

如果 PendingIntent 具有相同的操作、动作、数据、类别、组件和标志,它将被替换。

根据情况,我通常通过提供唯一的请求代码作为静态值 (0,1,2) 或我从数据库接收的数据的行 ID 来解决这个问题。

PendingIntent.getActivity(context, MY_UNIQUE_VALUE , notificationIntent, PendingIntent.FLAG_ONE_SHOT);

然后我使用与 notify() 相同的唯一值

mNotificationManager.notify(MY_UNIQUE_VALUE, notification);

【讨论】:

我遇到了同样的问题,这个解决方案非常有效。我认为问题始于documentation - 声称当前未使用请求代码,但似乎确实如此。感谢您的回答。 这是为我做的。非常感谢。开发者文档确实只提到了 notify 方法的唯一 ID,而不是 getActivity 方法。 PendingIntent.FLAG_UPDATE_CURRENT 也不起作用。感谢您的回答。 谢谢,这对我有用。但请记住,MY_UNIQUE_VALUE 不得大于 65535 (2^16),因为只允许使用请求代码的前 16 位(片段为 2^8)。一个简单的解决方案是使用 (MY_UNIQUE_VALUE % 65535) 作为 requestCode。所以它不会超过 2^16 ;) 完美答案,为什么直到现在才被接受?

以上是关于同一活动的多个通知的主要内容,如果未能解决你的问题,请参考以下文章

当我在活动中发送消息时,我想向多个用户(即组的用户)发送通知

应用程序被杀时,一个通知多个意图

Android 通知 - 为多个用户推送通知

是否可以通过clevertap在相同的时间段内为应用程序设置多个应用内通知?

Android:如果同一活动中有多个 ListView,为啥我看不到 ListView?

SpringAOP通知细节-多个切面及排序