我正在编写一个应用程序,它有一个启动服务。此服务只会在一段时间后弹出通知,并在给定时间段内使用新信息更新通知。目前不需要进一步节省电池,我只想让更新序列工作。
我遇到了一个问题。创建启动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”部分,没有意图?
答案 0 :(得分:0)
如果您发布通知并且此通知已存在,则只会使用新信息进行更新。如果它不存在,它将被创建。我认为你不需要做任何特别的事情来获得你想要的行为。
来自documentation for NotificationManager.notifiy():
发布要在状态栏中显示的通知。如果是通知 具有相同ID的已经由您的应用程序发布并具有 尚未取消,将被更新的信息取代。