0

我目前正在编写一个应用程序,它具有启动服务。该服务只是在一段时间后弹出一个通知,并在给定的时间段内用新信息更新它。目前不需要任何进一步的电池节省,我只希望更新序列正常工作。

我遇到了一个问题。创建启动 BroadcastReceiver 然后启动我的服务。它,我通过 Timer 和 TimerTask 完成工作。但是正如我所看到的,没有简单的方法来检查通知是否被删除,因此不要尝试更新它,而是重新创建它。

我想做的事:

private Notification n;

NotifTask extends TimerTask {
    public void run() {
        if(n.exists){
           // Update notification
        }else{
           n = Notification.Builder(context).[customize it].build();
        }
    }
}

并在服务的 onStart 中设置一个计时器,每 10 秒运行一次此任务。现在,我的问题是:有没有什么方法可以轻松地完成“n.exists”部分,而无需任何意图?

4

1 回答 1

0

如果您发布通知并且该通知已经存在,它将使用新信息进行更新。如果它不存在,它将被创建。我认为你不需要做任何特别的事情来获得你想要的行为。

NotificationManager.notify() 的文档中

发布要在状态栏中显示的通知。如果您的应用程序已经发布了具有相同 id 的通知并且尚未取消,则它将被更新的信息替换。

于 2012-08-03T11:00:22.573 回答