Android AlertDialog:窗口泄露错误

时间:2012-01-20 07:16:36

标签: android

这个错误显示在alert.show()代码行中。在点击对话界面,启动这样的新活动  startActivity(new Intent(LayoutActivity.this,MainActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));

尝试关闭onPause()和onStop()以及onDestroy()中的alert.dismiss()仍然得到相同的错误

4 个答案:

答案 0 :(得分:2)

我有同样的错误。我发现的是cancelonStop()警报对话框就足够了。在onStop()中尝试这种代码安静: if(dialog != null) dialog.cancel();

答案 1 :(得分:1)

这是android的典型问题。

解决问题的目标是,在Resume()和onPause()上显示或隐藏活动之间的对话

像这样

boolean isShown = false;
public void onResume()
{
   isShown = true;
   ...
}

public void onPause()
{
   isShown = false;
   ...
}

public void showDialog()
{
   if(isShown)
   {
      ...
   }
}

答案 2 :(得分:0)

为什么addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)会关闭之前打开的所有Acitivties。 如果您假设活动的主题是一个对话框,只需将其用作活动。如果有AlertDialog对象,则调用alert.dismiss()。

答案 3 :(得分:0)

您应该看到此对话框的活动未激活,或者您可以在清单中将当前活动的属性 noHistory 设置为 true