计时器只执行一次

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();
  }
} 

谢谢你们两位。但是我仍然有一个问题,就是“任务”只有在我触摸显示屏时才能完成它的工作。 - Simon Schubert
2个回答

3

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


0
计时器正在执行它应该做的事情。你应该使用计时器的schedule方法,而不是scheduleAtFixedRate()。

谢谢,但我使用了三个参数方法。 - Simon Schubert

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接