Я использую showDialog()
и dismissDialog()
, чтобы показывать диалоги прогресса в моем приложении. Перемещено от создания диалога и вызова show()
на нем, чтобы использовать это, чтобы сохранить состояние при изменении ориентации.
Но когда я меняю ориентацию с портретом → пейзаж → портрет, dismissDialog()
больше не отклоняет диалог. Диалог остается там все время, и мне нужно нажать кнопку "Назад", чтобы он исчез.
Любая причина, по которой она будет вести себя таким образом?
Edit
Чтобы решить эту проблему, я попытался добавить 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, который я делаю, но почему второй раз?), и это происходит каждый раз, когда я меняю ориентацию и далее.
Любая идея, почему это происходит?
Еще раз спасибо