我们中的许多人都遇到了可怕的
E / WindowManager:android.view.WindowLeaked
这可能是由于提及here以及许多其他SO问题的原因所致。
我已经尝试确保我的对话框位于一个好的地方"在展示它们之前,经常将它们包裹在某些条件下,如:
if (!isFinishing() && !isDestroyed()) {
mDialog.show();
}
我很好奇是否有人知道一个完美的环境"保证AlertDialog始终显示没有错误。从个人经验来看,即使有上述条件,WindowLeaked错误仍然会出现。
答案 0 :(得分:0)
这确实是我在更改Activity的方向时遇到的问题,每当我们尝试显示一个关闭Activity的对话框时,这个错误就会飙升。在一个不太重要的情况下,如在活动数据记录信息中,我只是忽略对话并使用以下代码关闭:
@Override
public void onPause() {
super.onPause();
try {
if (myAlertDialog != null && myAlertDialog.isShowing()) {
myAlertDialog.dismiss();
myAlertDialog = null ;
}
} catch (Exception e) {
e.printStackTrace();
}
}
但是如果你需要将它保留在屏幕上,我找到的唯一方法就是锁定Activity的方向。