我有一个Android应用已注册BroadcastReceiver
以获取BOOT_COMPLETED
(我拥有所需权限以及清单中配置的所有内容)。
当它获得它时,它会安排一个runnable每隔X分钟运行一次:
ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
executor.scheduleAtFixedRate(new Runnable() {
public void run() {
}
}, 0, 2, TimeUnit.MINUTES);
当用户启动应用程序时,也会手动调用相同的方法。
BOOT_COMPLETED
时,预定的runnable只运行一次(成功),然后停止并再也不运行。没有例外,但它没有运行。为什么会发生这种情况?
答案 0 :(得分:1)
为什么会发生这种情况?
由于您的流程已终止,请将ScheduledExecutorService
与其一起使用。
使用AlarmManager
定期获取控制权。