Android: диалоговая тема не видна - PullRequest
0 голосов
/ 01 апреля 2012

У меня есть действие, которое при запуске должно проверять подлинность пользователя.Если нет, мне нужно отобразить интерфейс для аутентификации.Я делаю это с другим действием, которое имеет тему диалога, и я запускаю его в onResume () с флагами NO_HISTORY и EXCLUDE_FROM_RECENTS.

Все отлично работает при первом запуске приложения.Но у меня есть функция, которая сбрасывает логин через некоторое время, если пользователь не в активности.Когда я проверяю это, я запускаю приложение, вводю пароль, затем возвращаюсь домой.Затем, когда я снова вхожу в приложение, фон темнеет, как если бы диалоговое окно отображалось, но это не так.

В этот момент, если я нажимаю кнопку «Назад», затемнение от фоновой активности исчезает дляво-вторых, затем, наконец, появляется диалоговое окно.

Я использовал logcat для расследования случая, и функции жизненного цикла действия вызываются правильно:

//For the first start:

onCreate background activity
onStart background activity
onResume background activity

onPause background activity

onCreate dialog
onStart dialog
onResume dialog

//Enter password

onPause dialog
onResume background activity
onStop dialog
onDestroy dialog

//navigating to homescreen

onPause background activity
onStop background activity

//starting again

onRestart background activity
onStart background activity
onResume background activity

onPause background activity

onCreate dialog
onStart dialog
onResume dialog

//no dialog shown, only darkened background activity recieving no input
//pressing back button

onPause dialog
onResume background activity
onPause background activity

onCreate NEW dialog
onStart NEW dialog
onResume NEW dialog

onStop OLD dialog
onDestroy OLD dialog

//now the dialog is properly shown
//entering password

onPause NEW dialog
onResume background activity
onStop NEW dialog
onDestroy NEW dialog

Использование флага SINGLE_TOP не изменится.Однако, если я удаляю тему диалога из действия диалога, она отображается после перезапуска.

До сих пор я не хотел использовать диалог вместо действия, потому что я иногда считаю их проблемными и менее проблемнымизаключен в капсулу, и эта часть должна быть довольно безопасной.Вы можете убедить меня, хотя ..

Спасибо заранее!

...