AlertDialog打开的必要条件

时间:2015-05-22 20:48:14

标签: android alertdialog android-alertdialog

我们中的许多人都遇到了可怕的

  

E / WindowManager:android.view.WindowLeaked

这可能是由于提及here以及许多其他SO问题的原因所致。

我已经尝试确保我的对话框位于一个好的地方"在展示它们之前,经常将它们包裹在某些条件下,如:

if (!isFinishing() && !isDestroyed()) {
    mDialog.show();
}

我很好奇是否有人知道一个完美的环境"保证AlertDialog始终显示没有错误。从个人经验来看,即使有上述条件,WindowLeaked错误仍然会出现。

1 个答案:

答案 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的方向。