Я использую showDialog()
и dismissDialog()
, чтобы показать диалоги прогресса в моем приложении. Перемещено от создания диалога и вызова show()
, чтобы использовать это, чтобы сохранить состояние при изменении ориентации.Android - увольнениеDialog не отклоняет диалог
Но когда я меняю ориентацию с портретом -> пейзаж-> портрет, dismissDialog()
больше не отклоняет диалог. Диалог остается там все время, и мне нужно нажать кнопку «Назад», чтобы он исчез.
Любые причины, по которым это будет вести себя так?
Редактировать
Чтобы преодолеть эту проблему, я пытаюсь добавить removeDialog()
в onDestroy()
так, что диалог не создается/отображается дважды и перед изменением ориентации, диалог удаляется. Пробовал добавление операторов журналов и посмотреть, что происходит
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
Если мы видим здесь, первоначально, когда отображается активность, onCreateDialog вызывается один раз, и при изменении ориентации, onSaveInstanceState и OnDestroy называются.
Но после этого onCreateDialog вызывается дважды (один раз вызовом showDialog, который я делаю, но почему второй раз?), И это происходит каждый раз, когда я меняю ориентацию, а затем вперед.
Любая идея, почему это происходит?
Еще раз спасибо
Может кто-то пожалуйста, помогите мне с этим вопросом? Я видел много сообщений и блогов об этой проблеме, но ни один из них не имеет решения, которое работает. – lostInTransit