2010-08-09 46 views
3

我需要在我的應用程序中使用常規方法。問題是:代碼中的以下計時器僅執行一次操作。如果在時間(2000)結束後我做了一個動作(觸摸顯示器),那麼定時器只會執行一次(一次)。你懂我的意思嗎?也許它有某事。使用「OnTouchListener」?計時器只做一次工作

public class DrawView extends View implements OnTouchListener { 

    Timer mTimer = new Timer(); 

    public DrawView(Context context) { 
     mTimer.schedule(new Task(this), 2000); 
    } 

    public boolean onTouch(View view, MotionEvent event) { 
    } 
} 

class Task extends TimerTask { 

    private DrawView mDw; 

    public Task(DrawView dw){ 
     mDw = dw; 
    } 

    public void run() { 
     mDw.newgame(); 
    } 
} 
+0

謝謝你們兩位。但是我仍然存在只有當我觸摸顯示屏時「任務」才能完成其工作的問題。 – 2010-08-09 16:40:09

回答

2

shcedule(task, 0, 2000) - 使用3參數方法。第二個參數是延遲,第三個是時間。見Timer#schedule(..)

0

計時器正在做他應該做的事情。您應該使用計時器的計劃方法,而不是scheduleAtFixedRate()。

+0

謝謝,但我使用了3參數的方法 – 2010-08-09 16:38:24