背景
在有些場景下,會使用到透明的activity做中轉(zhuǎn),但是有的時候可能沒有成功finish這個透明的頁面會阻止用戶正常操作
譬如: 在微博登錄SDK,有個透明的acitivity有的時候會沒關(guān)掉
方案
網(wǎng)上的方案是
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沒有被調(diào)用到,透明的activity會永遠(yuǎn)存在,而且在啟動截圖的時候崩潰了,顯然這樣肯定有問題
我采用了這個方案,這個方案dispatchTouchEvent會被調(diào)用到
getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
|WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH);
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
//doSomeTing
finish();
return true;
}