美文网首页Android 小技巧
解决透明Activity点击不影响用户操作

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

作者: 信念着了火 | 来源:发表于2017-07-01 04:31 被阅读328次

背景

在有些场景下,会使用到透明的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点击不影响用户操作

    本文链接:https://www.haomeiwen.com/subject/qnlwcxtx.html