Существует много вопросов, связанных с проблемой, когда DialogFragment исчезает при вращении устройства. Но у меня противоположная. Мне нужно повернуть устройство, чтобы появилось диалоговое окно.DialogFragment исчез после возвращения из другой активности
Я использую android-support-v4.jar lib.
У меня есть MainActivity (android.support.v4.app.FragmentActivity
) с AccountsFragment (android.support.v4.app.Fragment
). Через пункт меню пользовательские триггеры отображают SettingsDialogFragment (android.support.v4.app.DialogFragment
).
SettingsDialogFragment показан изнутри MainActivity с помощью:
android.support.v4.app.DialogFragment.show(FragmentManager manager, String tag)
FragmentManageer заводится форма MainActivity с помощью:
android.support.v4.app.FragmentActivity.getSupportFragmentManager()
Пользователь нажимает кнопку на SettingsDialogFragment, что триггерами показывает PasslockSetupActivity (android.support.v4.app.FragmentActivity
). Пользователь заканчивает настройкой блокировки прохода, мы вызываем PasslockSetupActivity.finish().
Ожидаемый результат: пользователь должен увидеть SettingsDialogFragment над MainActivity с помощью AccountsFragment. Фактический результат: пользователь видит MainActivity с AccountsFragment
наблюдения (не диалог!): Опции для разработчиков включен
- Если «Не держите acvitivies» на устройстве, то он работает, как ожидалось.
- Если пользователь поворачивает устройство, появится диалоговое окно!
В обоих наблюдениях указано, что если система повторно создает MainActivity, она успешно восстанавливает диалог.
Кроме того, я воспроизвожу только на Android 4.2.1/4.2.2. Другие версии выглядят нормально.
Неужели кто-нибудь столкнулся с такой проблемой? Есть идеи?
UPDATE:
Просто понял, что я могу воспроизвести проблему даже без запуска другой деятельности! Этого достаточно, чтобы нажать кнопку «Главная», чтобы приложение перешло на задний план, а затем выберите приложение из списка последних приложений, поэтому оно появляется на переднем плане. Диалог исчез. Но если я вращаю устройство, появится диалоговое окно.