Android:如何检测通知ID是不是存在?

Posted

技术标签:

【中文标题】Android:如何检测通知ID是不是存在?【英文标题】:Android: How to detect whether notification id exist or not?Android:如何检测通知ID是否存在? 【发布时间】:2016-04-03 18:44:38 【问题描述】:

是否可以检测到通知栏中是否存在带有唯一ID的通知?

mNotificationManager.notify(100, mBuilder.build());

表单示例,我创建了 ID 为 100 的通知。下次当我再次使用 那个 id 创建通知时,我不希望它更新。我使用了setOnlyAlertOnce(true),声音消失了,但它仍会更新该通知并将其移至顶部。

【问题讨论】:

【参考方案1】:

从 API 级别 23 (android M) 开始,您可以获得活动通知列表并找到具有给定 ID 的通知。

StatusBarNotification[] notifications = 
    mNotificationManager.getActiveNotifications();
for (StatusBarNotification notification : notifications) 
  if (notification.getId() == 100) 
    // Do something.
  

在早期版本中,您需要保留有关您创建的通知的信息,并通过在创建通知时设置deleteIntent 处理通知删除。

【讨论】:

是的,这可行,但我无法更改为 API 级别 23。我能再问您一个问题吗?如何在从BroadcastReceiver 扩展的类中使用HttpURLConnection 您应该为这个问题创建另一个问题。但简短的回答是启动服务。

以上是关于Android:如何检测通知ID是不是存在?的主要内容,如果未能解决你的问题,请参考以下文章

Android GCM:如何在我自己的服务器中检测注册的规范 ID?

有没有办法在 Android Wear Watch 上检测位置是不是关闭而不是不存在

当有多个具有不同通知ID的通知时,如何在android中关闭通知?

如何检测是不是已在android中访问过联系人

Android内存泄漏检测工具:LeakCanary

Android内存泄漏检测工具:LeakCanary