2014-09-02 69 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