我需要在我的应用中使用常规方法。问题是:代码中的以下计时器只执行一次操作。如果我在时间(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 :(得分:3)
shcedule(task, 0, 2000)
- 使用3参数方法。第二个参数是延迟,第三个是期间。见Timer#schedule(..)
答案 1 :(得分:0)
计时器正在做他应该做的事情。您应该使用计时器的计划方法,而不是scheduleAtFixedRate()。