我要为手势的第一个事件初始化对象“ obj”。
如果ACTION_DOWN总是在ACTION_MOVE之前到达,我可以通过检查当前事件是否为ACTION_DOWN来初始化对象。
同时,如果有可能在ACTION_DOWN之前达到ACTION_MOVE,则我需要同步锁上对象的初始化。
示例代码(通过同步)如下:
public boolean onInterceptTouchEvent(MotionEvent e) {
if (object == null) {
synchronized (lock) {
if (object == null) {
object = new MyClass();
}
}
}
return super.onInterceptTouchEvent(e);
}
答案 0 :(得分:1)
ACTION_DOWN
。
当您将手指放在屏幕上开始移动时,将调用ACTION_MOVE
。
因此从技术上讲,ACTION_MOVE
之前是ACTION_DOWN
。