0
windowmanagerでaddviewを使用して単純なロック画面を実行していますが、表示が追加される前に表示される前に白い厄介なページが追加されています。私はビューの背景を他の色に設定しようとしましたが、何も影響を受けませんでしたので、アクティビティの背景色を変更した後、ウィンドウビューに関連するかもしれないと思います。windowmanagerにaddviewすると白い空白の画面が表示される
ps:finish()の前に呼び出したときにビューを削除すると、白いビューが表示されますが、ondestroyedのビューを削除すると少し遅れますが、白いビューは表示されません。
addView/removeViewを使用すると、この白いビューを削除/非表示にすることはできますか?
public static synchronized LockUtil getInstance(Activity act) {
if (mLockLayer == null) {
mLockLayer = new LockUtil(act);
}
return mLockLayer;
}
private LockUtil(Activity act) {
mActivty = act;
init();
}
private void init() {
isLocked = false;
if (null == mWindowManager) {
mWindowManager = ((WindowManager) mActivty.getSystemService(Context.WINDOW_SERVICE));
}
mLockViewLayoutParams = new WindowManager.LayoutParams();
mLockViewLayoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
mLockViewLayoutParams.height = WindowManager.LayoutParams.MATCH_PARENT;
mLockViewLayoutParams.type = WindowManager.LayoutParams.TYPE_PHONE;
mLockViewLayoutParams.flags = WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
mLockViewLayoutParams.windowAnimations = android.R.style.Animation_Translucent;
}
public synchronized void lock() {
if (mLockView != null && !isLocked) {
mWindowManager.addView(mLockView, mLockViewLayoutParams);
isLocked = true;
}
}
public synchronized void unlock() {
if (mWindowManager != null && isLocked) {
try{
mWindowManager.removeView(mLockView);
isLocked = false;
}catch(IllegalArgumentException e){
Logger.e("LockUtil unlock failed:"+e.getMessage());
}
}
mActivty = null;
}