Android计时器计划

Nej*_*eji 7 android timer scheduled-tasks task android-timer

以下是我在项目中用于安排任务的代码片段

mTimer = new Timer();
mTimer.schedule(new TimerTask() {

 @Override
 public void run() {
  //Do Something
 }

}, interval, interval);
Run Code Online (Sandbox Code Playgroud)

这很好用.我提到间隔后得到事件.但如果将日期设置为小于设置中的当前值,则无法发送任何事件.

有谁知道为什么会发生这种行为?

Kev*_*ede 6

Timer更改系统时钟时失败,因为它基于System.currentTimeMillis(),它不是单调的。

Timer不是 Android 类。它是一个存在于 Android API 中的 Java 类,用于支持现有的非 Android 库。Timer在新的 Android 代码中使用 a 几乎总是一个坏主意。Handler对于在应用程序的活动或服务的生命周期内发生的定时事件,请使用。 Handler基于SystemClock.uptimeMillis(),它单调的。对即使您的应用程序未运行也应该发生的定时事件使用警报