安卓多个通知只显示最后一个

3

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

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

有什么建议可以提供吗?是通知的PendingIntent部分出了问题吗?
提前致谢。

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

7

请确保您使用唯一的标识符。作为一个解决方法,您可以使用循环整数 i 值代替 notification.getInt("id")。

例如:

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

或者您可以在SharedPreference中保存一个整数值,并在for循环中定期递增它,并将其用作ID。


嗨,我认为你应该为每个通知使用不同的ID,并使用循环发送多个通知。 - Sivakumar

1

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

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

您需要在通知中设置标志(setFlag)。
n.flags += Notification.FLAG_ONGOING_EVENT;
n.flags += Notification.FLAG_NO_CLEAR;
notificationManager.notify(notificationId, n);

请查看链接: Android: Managing Multiple Notifications

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接