0

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

 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 创建多个实例?请给我一些好的解决方案:-)

4

1 回答 1

0

在 AndroidManifest.xml 文件中将以下内容添加到您的活动标记中。

android:configChanges="orientation|screenSize"

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

于 2013-10-22T12:04:58.173 回答