不要覆盖现有通知

时间:2010-10-05 21:36:03

标签: android notifications android-notifications

对于给定的通知ID,是否可以(使用标准的Android软件包)在应用程序存在现有通知的情况下不设置通知?

我有一个新闻应用程序通知用户突发新闻标题,其中一个要求是如果用户尚未清除或未点击查看突发新闻,则不会过度撰写突发新闻。

我使用SharedPreference设置一个标志,以确定我是否已经显示标题加上删除意图,以便清除它。但是,当用户清除所有通知时,并不总是调用deleteIntent。

提前致谢。

和Sandeep

2 个答案:

答案 0 :(得分:0)

对于之后关注此事的人:

没有简单的方法可以使用SDK覆盖现有的通知ID。这样做的方法是:

  • 通过SharedPreference使用布尔标志,如果设置了此标志,则不写入通知
  • 当用户“清除”所有通知时重置此标志。要执行此操作,请设置deleteIntent(通过服务),确保在onStartCommand()和onStart()中清除此标志
  • 可选择在启动应用时重置标志

答案 1 :(得分:0)

如果您的要求是:

  

如果用户尚未清除或未点击查看突发新闻,则其中一项要求是不要过度撰写突发新闻。

您可以使用NotificationManager获取应用使用getActiveNotifications()

发布的所有有效通知的列表

检查用户是否已解除或打开通知并采取必要的措施。

根据getActiveNotifications()的参考文档:

  

恢复活动通知列表:调用应用程序已发布但尚未被用户解雇或已被应用取消的通知列表。

希望它有所帮助。