2014-09-02 70 views
1

我正在写简单的游戏,其中一些动作必须在此过程中加速。问题是如何改变计时器的周期?如何更改android定时器时间?

timer = new Timer(); 
    timerTask = new TimerTask() { 
     @Override 
     public void run() { 
      runOnUiThread(new Runnable() { 
       @Override 
       public void run() { 
        // 
        // I need to change timer's period here 
        // 
       } 
      }); 
     } 
    }; 
    timer.schedule(timerTask, 0, period); 

很高兴听到任何意见。

+0

不幸java.lang.IllegalStateException:TimerTask的计划已经 – 2014-09-02 13:26:45

回答

0

我假设你正在执行TimerTask的run()方法内的一些逻辑。

我认为一个简单的方法去做这件事将是使用处理程序。这可能是更地道的Android:

private final Handler mHandler = new Handler(); 

private final Runnable mTask = new Runnable() { 
    @Override 
    public void run() { 
     // Do your logic. 
     // Now post again. 
     mHandler.postDelayed(mTask, /* choose a new delay period */); 
    } 
};  

public void init() { 
    delay = 1000L; // 1 second. 
    mHandler.postDelayed(mTask, delay); 
} 
+0

我不知道我什么都明白了。在这些延误期间我能做些别的事吗?例如点击按钮。或者它会先推迟然后听我的点击? – 2014-09-02 13:39:28