chinwetang
chinwetang
### onTouchListener、onTouchEvent、以及onClickListener谁的优先级高? 我们知道自定义View时如果有交互,避不开要重写View的`onTouchEvent()`,项目开发中`setOnClickListener()`的使用更是家常便饭,除此之外,偶尔也会`setOnTouchListener()`自定义触摸事件,那么如果我一个自定义View重写了`onTouchEvent()`,同时又`setOnClickListener()`以及`setOnTouchListener()`,它们的执行顺序时怎样的?一定都会执行吗? 我们看到View的`dispatchTouchEvent()`中有这么一段代码: ``` if (li != null && li.mOnTouchListener != null && (mViewFlags & ENABLED_MASK) == ENABLED && li.mOnTouchListener.onTouch(this, event)) { result = true; } if (!result &&...
### 为什么AsyncTask只能执行一次,只能用一次execute? 我们点开`execute()`,可以看到调用了`executeOnExecutor()` ``` @MainThread public final AsyncTask execute(Params... params) { return executeOnExecutor(sDefaultExecutor, params); } ``` 看到**executeOnExecutor** ``` @MainThread public final AsyncTask executeOnExecutor(Executor exec, Params... params) { if (mStatus !=...