I am working through debugging some touch handling stuff on Android, and am trying to figure out why the MotionEvent sent to my View\'s onTouchListener contains a <
ACTION_CANCEL is triggered by ancestor to notify all descendants that they lost onTouch control and it's will be responsible for handling the next onTouch event. Usually it is caused when a descendant returned true in onTouch or onTouchEvent method but after that, during the next of touch event of gesture, an ancestor returned true in onInterceptTouchEvent()
[Touch event flow]