Android如何在定时任务被调度后更改时间间隔?

11
timerUploadTime = new Timer();
timerUploadTimeTask = new TimerTask() {
   @Override public void run() {
      mHandler.post(new Runnable() {
        @Override
         public void run() {
             ...
          }
      }
    });
 }
 };

timerUploadTime.schedule(timerUploadTimeTask, 1, Integer.parseInt(Utils.loadStringValue(mycontext, "refresh")));
我想在代码的另一个部分更改计时器的间隔。有没有办法做到这一点?我不想重新定时我的代码,我想添加一个新的“周期”间隔。在计划后如何实现?
3个回答

14

你不能继续执行当前任务,必须取消并重新安排。


有其他的方法或替代方案吗? - lacas
@lacas,没有,至少我不知道有。 - mre

3
在设置新的计划之前,您应该取消定时器。
timerTask.cancel();
timerTask = new MyTimerTask();
timer.schedule(timerTask, delay);

0
一种实现的方法是将计时器调度为每秒运行一次,在计时器可运行的代码块中,每秒增加一个计数器,然后您可以添加 if 语句来检查您的计数器是否被您所需的计数器变量(以秒为单位)取模,以便在不执行任何操作的情况下返回。
timerCounter++;
if((timerCounter%desiredCounter)!=0){
 return;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接