【问题标题】:Android how to change a TimerTask interval after shcedule?Android 如何在计划后更改 TimerTask 间隔?
【发布时间】:2011-08-31 13:17:44
【问题描述】:
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")));

我想在另一个代码段中更改计时器的间隔。有没有办法做到这一点? 我不想重新定时我的代码,我想添加一个新的“周期”间隔。

我怎样才能在计划后做到这一点?

【问题讨论】:

    标签: java android


    【解决方案1】:

    你不能。您必须取消当前任务并重新安排。

    【讨论】:

    • 还有其他方法吗?还是替代品?
    • @lacas,不,我不知道。
    【解决方案2】:

    您应该先取消计时器,然后才能为其设置新的时间表。

    timerTask.cancel();
    timerTask = new MyTimerTask();
    timer.schedule(timerTask, delay);
    

    【讨论】:

      【解决方案3】:

      实现它的一种方法是安排您的计时器每秒运行一次,并在您的计时器可运行内,每秒增加一个计数器,然后您可以添加 if 语句以通过所需的计数器变量检查您的计数器模式(以秒为单位)返回而不做任何事情

      timerCounter++;
      if((timerCounter%desiredCounter)!=0){
       return;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-07
        • 1970-01-01
        • 2015-12-19
        相关资源
        最近更新 更多