解决透明Activity点击不影响用户操作

背景

在有些场景下,会使用到透明的activity做中转,但是有的时候可能没有成功finish这个透明的页面会阻止用户正常操作
譬如: 在微博登录SDK,有个透明的acitivity有的时候会没关掉

方案

网上的方案是

getWindow().addFlags( WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
                | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
                | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
@Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
     //doSomeTing
        return true;
    }

这种方式在点击前一个页面时,这个页面的dispatchTouchEvent没有被调用到,透明的activity会永远存在,而且在启动截图的时候崩溃了,显然这样肯定有问题
我采用了这个方案,这个方案dispatchTouchEvent会被调用到

 getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
                |WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH);
@Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
     //doSomeTing
        finish();
        return true;
    }

你可能感兴趣的:(解决透明Activity点击不影响用户操作)