【问题标题】:Android Multiple Notifications Only Showing Last OneAndroid 多个通知仅显示最后一个
【发布时间】:2014-07-23 10:15:51
【问题描述】:

我正在创建一个通过 FOR 循环推送多个通知的通知系统。 Logcat 显示我正在创建多个通知(手机甚至会发送两个对应的铃声)。但是通知栏只显示最后一个。 我阅读了文档,它说调用 NotificationManager.notify 需要一个唯一的 Id,如果这个 Id 存在,那么通知将被新的替换。我为每个通知使用了唯一的 GUID,但仍然没有成功。

notificationManager.notify(notification.getInt("id"), n);

有什么建议可以使用吗?会不会是通知的 PendingIntent 部分?

提前致谢。

【问题讨论】:

  • 发布通知生成器和待处理意图相关代码,确保“id”中的 int 不同,它应该可以正常工作
  • 为什么不能只打印 id 值来记录以确保 id 值不同
  • 我刚刚记录了 ID,你是对的。它显示相同的 Id ,这真的很奇怪,因为我使用了一个全局变量并在通知循环中更改它。这次我使用了一个局部变量。
  • 还有一件事,现在我收到多个通知,但只有一个打开,其他什么都不做。我应该使用哪个 pendingIntent 标志来强制每个通知启动目标活动的新实例?

标签: java android notifications


【解决方案1】:

只需确保您使用的是唯一 id,作为一种变通方法,您可以使用 for 循环整数 i 值而不是 notification.getInt("id")。

例如:

for(int i = 1; i < 10; i++)
{
  notificationManager.notify(i, n);
}

或者您可以在 SharedPrefrence 中保存一个整数值,并在 for 循环中定期递增它并使用与 id 相同的值。

【讨论】:

  • 嗨,我认为您应该为每个通知使用不同的 id .. 并使用循环发送多个通知..
【解决方案2】:

你必须创建一个新的意图,只需添加以下代码:

intent.setData((Uri.parse("custom://"+System.currentTimeMillis())));

您还需要在通知中设置标志:

n.flags += Notification.FLAG_ONGOING_EVENT;
n.flags += Notification.FLAG_NO_CLEAR;
notificationManager.notify(notificationId, n);

请参考链接: Android: Managing Multiple Notifications

【讨论】:

    【解决方案3】:

    请检查 Pending Intent 请求代码,该代码对于每个循环周期应该是唯一的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多