计划的runnable在启动时仅调用一次

时间:2014-03-11 22:41:55

标签: java android

我有一个Android应用已注册BroadcastReceiver以获取BOOT_COMPLETED(我拥有所需权限以及清单中配置的所有内容)。

当它获得它时,它会安排一个runnable每隔X分钟运行一次:

ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
executor.scheduleAtFixedRate(new Runnable() {
    public void run() {

    }
}, 0, 2, TimeUnit.MINUTES);

当用户启动应用程序时,也会手动调用相同的方法。

  • 手动启动应用时,预定的runnable按预期运行
  • 当应用程序收到BOOT_COMPLETED时,预定的runnable只运行一次(成功),然后停止并再也不运行。没有例外,但它没有运行。

为什么会发生这种情况?

1 个答案:

答案 0 :(得分:1)

  

为什么会发生这种情况?

由于您的流程已终止,请将ScheduledExecutorService与其一起使用。

使用AlarmManager定期获取控制权。