当用户按下按钮时,我需要触发一个事件,当用户在我的应用中释放它时,我需要触发另一个事件。事件是简短的Asyc任务,在后台运行。
问题是,我知道如何使用OnTouchListener()
来实现这一点,但似乎当你按住按钮时,它会在onTouch()
方法上运行一个无限循环,当用户发布它。虽然我的任务只启动了一次,但它一遍又一遍地空着,什么都不做。
我不确定是否有其他方法可以实现此目的,这会触发我的后退事件并停止循环。这将是有益的,因为已经消耗了侧线程形式的许多资源,并且我想保存一些无用的方法运行。如果出现问题,这是我的实现:
private OnTouchListener down = new OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent event) {
// TODO Auto-generated method stub
int action = event.getAction();
if (action == MotionEvent.ACTION_DOWN) {
//Async Task
} else if (action == MotionEvent.ACTION_UP) {
//Async Task
}
return false;
}
};