
事件未被消费,当前视图都没能处理掉这个事件,才会去调用Activity的onTouchEvent方法,且他的返回值作为dispathchEvent的返回值。

查看Activity中onTouchEvent方法的实现逻辑,发现其中一个的判断逻辑很重要,如果返回为true则会关闭当前界面且返回true。

查看Window中shouldCloseOnTouch方法,当这三个bolean值均为true时返回true。
* mCloseOnTouchOutside=true这个值表示当前Activity支持点击空白区域让acitvity消失。这个变量一般在downLoad的时候这个值才为true。
* peekDecorView的实现在PhoneWindow,返回的是当前的dectorView。
* isOutside =true 表示当前触摸的点击事件是在顶层View DoctorView之外的,没有点击到DoctorView里面。
Activity整体传递流程比较线性,如果还是不清楚可以再回看源码及流程图消化吸收。
事件通过Acticity的DispatchTocuhEvent走到DecorView的superDispatchTouchEvent,再走到ViewGroup再到View
isOutside 为true时表示当前的点击事件是在DecorView以外的
mCloseOnTouchOutside为true时通常表示Activity以Dialog的方式呈现时
mCloseOnTouchOutside为true时,表示Activity支持点击空白部分消失
PhoneWindow.shouldCloseOnTouch方法解析
Activity中的onTouchEvent代码,当事件没有被任何View、ViewGroup消费时事件(MotionEvent)才会进入到该方法中