【发布时间】:2011-12-04 02:48:07
【问题描述】:
我已经使用此处的说明实现了一个在按下时触发重复事件的按钮:
Button buttonDown = (Button) findViewById(R.id.buttonDown);
buttonDown.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
if(action == MotionEvent.ACTION_DOWN) {
move(SOUTH);
moveDirection = SOUTH;
mHandler.removeCallbacks(mUpdateTask);
mHandler.postAtTime(mUpdateTask, SystemClock.uptimeMillis() + 200);
} else if (action == MotionEvent.ACTION_UP) {
mHandler.removeCallbacks(mUpdateTask);
}
return false;
}
});
这非常有效。我希望我的程序中的其他触发器也能停止重复发生的事件。但是放置mHandler.removeCallbacks(mUpdateTask); 似乎不起作用。我做错了什么?
【问题讨论】:
-
这有效:pastebin.com/qfWj7YuK 并在不到一秒的时间内停止重复。你确定
mHandler.removeCallbacks(mUpdateTask);被调用了吗?在那里也记录一些东西。 -
谢谢,看来把电话放在一个新的线程中有所帮助。不知道为什么...