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

那麼,什麼?我不會傷害它。 –