当window设置了WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE时是接收不到返回事件的,此时如果需求是此window内的事件自己处理,其他事件其他的界面处理,此时可以将WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE改成WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,然后重写window内根布局的dispatchKeyEvent即可拦截back事件。如下:
第一步,将WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE改成WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
第二步,重写window中根布局的方法。