解雇onDestroy()中的MessageDialog不起作用?

时间:2013-10-22 11:08:41

标签: android android-alertdialog android-dialogfragment messagedialog

在屏幕打开时显示消息对话框,并保持对话框的方向已更改。

 public void onDestroy()
{  //savedMessageDialog id represents the current MessageDialogId


    //dismiss the message dialog if message id displayed. 
    int savedMessageDialogId = MessageDialog.getSavedMessageDialogId();
    if(savedMessageDialogId == MSG_BACK_DATE_WARNING){
        MessageDialog.dismissMessageDialog();
    }
}

和我的MessageDialog扩展了DialogFragment,因此我将相同的代码放在onSavedInstancestate中它正常工作没有问题Succcess !!!

虽然我把这个代码放在onDestroy中,但是我创建了多个实例,但很多时候我改变了方向,并且还注意到我将关闭对话框,因为当我从关闭时打开以打开设备我显示的对话框。 和我的MessageDialog内部使用AlertDialog .... 在那

 private static MessageDialog currentMessageDialog = null;

  public static void dismissMessageDialog()
{
    if (MessageDialog != null && MessageDialog.isAdded()) 
    {
        try 
        {
            currentMessageDialog.dismiss();             
        } 
        catch (IllegalStateException e)
        {
            e.printStackTrace();
        }
        finally
        {
            currentMessageDialog = null;
        }
    }
}

所以请让我知道为什么我不能忽略onDestroy中的对话框以及为MessageDialog创建多个实例的原因? 请建议我一些好的解决方案: - )

1 个答案:

答案 0 :(得分:0)

将以下内容包含在AndroidManifest.xml文件中的活动代码中。

android:configChanges="orientation|screenSize"

您可以参考this以获得更好的理解。