在android中重新安排计时器

Dij*_*vid 35 android scheduling timer

我怎样才能重新安排计时器.我试图取消定时器/时间任务,并使用方法再次安排它.但它显示异常错误:

Exception errorjava.lang.IllegalStateException: TimerTask is scheduled already

代码我用过它:

private Timer timer = new Timer("alertTimer",true);
public void reScheduleTimer(int duration) {
    timer.cancel();
    timer.schedule(timerTask, 1000L, duration * 1000L);
}

Eri*_*vik 59

如果您看到Timer.cancel()上的文档,您会看到:

"取消计时器和所有计划任务.如果当前正在运行的任务,它不会受到影响.此计时器上不再安排任何任务.后续调用不执行任何操作."

重新安排时,您需要初始化一个新的Timer:

编辑:

public void reScheduleTimer(int duration) {
  timer = new Timer("alertTimer",true);
  timerTask = new MyTimerTask();
  timer.schedule(timerTask, 1000L, duration * 1000L);
}

private class MyTimerTask extends TimerTask {
  @Override
  public void run() {
    // Do stuff
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 这是你的timerTask问题.重新安排计时器时尝试重新创建timerTask. (6认同)
  • 我试过但仍然错误显示!:( (4认同)