Android通知获取启动通知的服务?
我有一个服务,在一定的延迟后执行操作。我想在服务启动时显示一个通知,当单击该通知时,它将取消操作。没有用户界面,全部在后台完成。该服务在引导时由广播接收器启动 理想情况下,我希望每1秒更新一次通知,以显示剩余时间Android通知获取启动通知的服务?,android,android-intent,service,notifications,android-service,Android,Android Intent,Service,Notifications,Android Service,我有一个服务,在一定的延迟后执行操作。我想在服务启动时显示一个通知,当单击该通知时,它将取消操作。没有用户界面,全部在后台完成。该服务在引导时由广播接收器启动 理想情况下,我希望每1秒更新一次通知,以显示剩余时间 ... start operation thread and call thread.sleep(delay) ... create notification builder (nBuilder) try { // example assume delay =
... start operation thread and call thread.sleep(delay)
... create notification builder (nBuilder)
try { // example assume delay = 30 seconds
for (int sec = 30; sec >= 0; --sec) {
nBuilder.setContentText("Applying settings in " + sec + ", Click to cancel");
mNotifyMgr.notify(0x01, nBuilder.build());
Thread.sleep(1000);
}
}
catch (InterruptedException e) {
e.printStackTrace();
}
单击通知时,如何打破此循环?这是我的服务代码。据我所知,响应单击的唯一方法是设置挂起的意图,但我如何使用此意图来中断循环并取消服务中的操作
感谢阅读在您的
服务
中创建一个广播接收器
。单击通知时,使用将触发您的广播接收器的pendingent
。当运行BroadcastReceiver
中的onReceive()
方法时,它可以取消服务中的操作
谢谢david,但我找到了一个更简单的解决方案
我只是对我的线程进行了一个成员引用,并为设置了取消标志的服务创建了一个挂起的意图,它检索相同的服务实例,因此我能够中断线程
我不确定我在解释这个问题时做得很好,但我想为什么不分享解决方案呢