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

그럼 뭐야 ??? 나는 그것을 해치지 않을 것이다. –