我可以在Marshmallow过滤掉onNotificationPosted()重复项吗?

时间:2016-06-22 21:00:11

标签: android notifications

我设置了通知监听器。每次发布通知时都会调用一个函数。在Lollipop上,它很棒。每个新通知都会触发一次该功能。这就是我要的。我想(让我们说)记录我的传入通知,一次一个。

在棉花糖上,行为是不同的。考虑短信通知。 如果我从Person X收到一条短信,onNotificationPosted()会被触发一次,我会记录“你有一个来自人X的文字......”

如果用户未清除该通知,并且从Person Y收到附加SMS,则会触发onNotificationPosted()3次。其中一个描述了集群,例如“你有2个文本”,另一个是“你有来自人Y的文本”,第三个是“你有来自人X的文本。”

因此,通过接收2个文本,onNotificationPosted()被触发4次,其中2个实际上是相同的。当有多个来自多个人的未读消息时,这会变得更糟。当一个新的进来时,他们都会再次报道。

我是否有办法通过查看StatusBarNotification对象来过滤掉重复项?

我看到,在短信的情况下,我可以在通知属性中查找groupKey!= null和sortKey == 00,以确保我只报告最新的(新数据)短信,但是我我担心不同的应用会有不同的排序方案,导致这种方法无效。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,事实证明,没有直接的解决方案。您必须实现自己的逻辑来识别重复项。我建议您创建自己的通知类,从onNotificationPosted()方法中获取StatusBarNotification所需的信息并初始化自定义通知。然后,您可以创建自己的equals方法来确定重复项。