【问题标题】:Don't overwrite existing Notification不要覆盖现有的通知
【发布时间】:2010-10-05 21:36:02
【问题描述】:

对于给定的通知 ID,如果有来自应用程序的现有通知,是否可以(使用标准 android 包)不设置通知?

我有一个新闻应用程序通知用户突发新闻头条,其中一个要求是如果用户没有清除它或没有点击查看它,则不要重写突发新闻。

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

提前致谢。

桑迪普

【问题讨论】:

    标签: android notifications android-notifications


    【解决方案1】:

    对于以后关注此内容的任何人:

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

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

    【讨论】:

      【解决方案2】:

      如果您的要求是:

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

      您可以使用NotificationManager 获取您的应用程序使用getActiveNotifications() 发布的所有活动通知的列表

      并检查用户是否已关闭或打开通知并采取所需的操作。

      根据getActiveNotifications() 的参考文档:

      恢复活动通知列表:已由调用应用发布但尚未被用户关闭或应用取消的通知。

      希望对你有帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-06-22
        • 1970-01-01
        • 1970-01-01
        • 2014-10-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多