0

要在屏幕打开时显示消息对话框,并且保持方向对话框已更改。关闭onDestroy()中的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它的正常工作没有任何问题成功的情况下!

虽然我将这段代码放在了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创建? 请建议我一些好的解决方案:-)

+0

您是否收到任何错误? –

+0

没有错误!但是当我改变方向的多倍时,对话框的多个实例即将到来。 – AndroidGeeks

+0

在方向改变时,活动重新开始。这可能是你得到多重insatances的原因。 –

回答

0

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

android:configChanges="orientation|screenSize" 

您可以参考this更好地理解。

+0

我无法使用android:configChanges =“orientation | screenSize”,因为我为平板电脑和电话使用了不同的布局。 – AndroidGeeks

+0

那么,什么?我不会伤害它。 –