Timer只工作一次

时间:2010-08-09 16:00:48

标签: java android timer

我需要在我的应用中使用常规方法。问题是:代码中的以下计时器只执行一次操作。如果我在时间(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();
  }
} 

2 个答案:

答案 0 :(得分:3)

shcedule(task, 0, 2000) - 使用3参数方法。第二个参数是延迟,第三个是期间。见Timer#schedule(..)

答案 1 :(得分:0)

计时器正在做他应该做的事情。您应该使用计时器的计划方法,而不是scheduleAtFixedRate()。