showDialog()
및 dismissDialog()
을 사용하여 내 앱에서 진행 대화 상자를 표시합니다. 대화 상자를 생성하지 않고 오리엔테이션을 변경할 때 상태를 저장하기 위해 show()
을 호출하는 것으로 이동했습니다.Android - dismissDialog가 대화 상자를 닫지 않습니다.
그러나 portrait-> landscape-> portrait에서 방향을 변경하면 dismissDialog()
이 더 이상 대화 상자를 닫지 않습니다. 대화 상자는 항상 거기에 머물러 있으며 뒤로 버튼을 눌러야 사라집니다.
그런 식으로 행동하는 이유는 무엇입니까? 편집
내가 removeDialog()
그래서 대화 상자가 생성되지 않는다는/회와 방향이 변경되기 전에 표시 대화 상자가 제거 onDestroy()
에 추가 시도,이 문제를 극복하기 위해. 시도 활동이 표시 될 때 처음에이 onCreateDialog 한 번와 방향 변경에 대한라고, 로그 문을 추가하고 우리가 여기에서 볼 경우
05-21 12:35:14.064: DEBUG/MyClass(193): *************callingShowDialog
05-21 12:35:14.064: DEBUG/MyClass(193): *************onCreareDialog
05-21 12:35:15.385: DEBUG/MyClass(193): *************onSaveInstanceState
05-21 12:35:15.415: DEBUG/MyClass(193): *************onDestroy
05-21 12:35:15.585: DEBUG/MyClass(193): *************callingShowDialog
05-21 12:35:15.585: DEBUG/MyClass(193): *************onCreareDialog
05-21 12:35:15.715: DEBUG/MyClass(193): *************onCreareDialog
05-21 12:35:17.214: DEBUG/MyClass(193): *************onSaveInstanceState
05-21 12:35:17.214: DEBUG/MyClass(193): *************onDestroy
05-21 12:35:17.275: ERROR/WindowManager(193): android.view.WindowLeaked: Activity com.android.MyClass has leaked window [email protected] that was originally added here
05-21 12:35:17.395: DEBUG/MyClass(193): *************callingShowDialog
05-21 12:35:17.395: DEBUG/MyClass(193): *************onCreareDialog
05-21 12:35:17.475: DEBUG/MyClass(193): *************onCreareDialog
를 어떻게 볼, onSaveInstanceState 및들의 OnDestroy가 호출된다.
그러나 그 후에 onCreateDialog가 두 번 호출됩니다 (한 번 showDialog를 호출하면 두 번째 시간이 표시됩니까?). 그러면이 방향이 바뀔 때마다이 작업이 수행됩니다.
그 이유는 무엇입니까?
다시 한번 감사
을 바탕으로? 이 문제에 관해 많은 게시물과 블로그를 보았지만 해결할 솔루션이없는 것 같습니다. – lostInTransit