【问题标题】:Update notifications from broadcast Receiver in android从android中的广播接收器更新通知
【发布时间】:2015-05-01 13:00:31
【问题描述】:

我有一个广播接收器,它启动一个意图服务。

Intent 服务触发通知。

如果触发了多个通知,则由于 NOTIFICATION_ID 相同,因此不会更新。

有什么方法可以知道已经触发了多少通知? 这样我就可以相应地更新我的通知。

我不想触发单独的通知。我想更新现有的通知。我需要在这里弄清楚的是在触发通知时已经触发的通知数量。当用户点击它时,这个数字应该会重置。

【问题讨论】:

  • 在服务中创建任何 triggerNotification() 方法并在每次触发通知时调用它,在该方法中获取一个变量 'int num=0' 并在每次调用方法时递增它。然后再次使用 builder.setContentText(String.valueOf(num));和 notificationManager.notify(id, builder.build());更新通知
  • 并声明该变量为静态?我已经试过了。但是行为是不可预测的。有时它会更新变量,有时则不会。
  • 你需要多少通知?我认为你在做一些根本错误的事情......
  • 如果用户收到一条消息,我想显示他收到的消息。如果他收到 > 1 则我想显示他已收到 n 条消息。
  • 那你知道收到了多少条消息,那到底是什么问题?

标签: android notifications broadcastreceiver intentservice


【解决方案1】:

在您的通知方法中进行以下更改。

notificationManager.notify(getID(), 通知);

getId() 方法将提供唯一的 id,以便同时发出多个通知。

private final static AtomicInteger c = new AtomicInteger(3);

public static int getID() {
    return c.incrementAndGet();
}

【讨论】:

  • 我不想触发单独的通知。我想更新现有的通知。我需要在这里弄清楚的是在触发通知时已经触发的通知数量。当用户点击它时,该数字应该重置。
  • 您可以使用共享首选项来存储该整数值。每次通知触发时都会增加该值并再次存储在共享首选项中。当您单击通知并重定向到任何活动、服务或广播接收器时,将您的偏好变量设置为 0
  • 我认为这是最后的手段。有没有内置的方法来更新 Android 中的通知? :O
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多