...он вызывается не гарантированно, и, чтобы организовать сохранение состояния придется делать свой аналог в onPause
Практическая задача: в onPause проверили и обнаружили что висит диалог прогресса, надо его закрыть и в onResume восстановить, как?
учитывая что onResume может прийти и после пересоздания активности, значит, единственный выход - завести синглтон для хранения Bundle, в onResume получили ссылку на него, а там HashMap<String, Bundle>, где String - имя класса активности, так что ли?
Просто сейчас обнаружил что даже явный вызов finish() не приводит к вызову onSaveInstanceState.
Зачем нужен метод onSaveInstanceState, если...
Re: Зачем нужен метод onSaveInstanceState, если...
Если я правильно помню onSaveInstanceState срабатывает перед вызовом onStop. Т.е. onPause ему вообще побоку. Для решения этой задачи я бы сделал bool переменную, в onPause, если виден диалог, делаю её true, в onResume проверяем её и если true строим диалог. Сохраняем эту переменную в onSaveInstanceState.
onSaveInstanceState срабатывает только при "неявном" разрушении активити (при повороте экрана или убийстве процесса системой). Если ты явно вызываешь finish он не срабатывает.
onSaveInstanceState срабатывает только при "неявном" разрушении активити (при повороте экрана или убийстве процесса системой). Если ты явно вызываешь finish он не срабатывает.
Re: Зачем нужен метод onSaveInstanceState, если...
да, похоже зря напугался, а то уже собрался ударно все активности менять,
вот активность, показали ее, что-то там запустилось, анимация кнопок, прогрессбар, разные пользовательские изменения,
если идет поворот, то срабатывает onSaveInstanceState, там сохраняем состояние (а закрываем все диалоги и анимации в onPause конечно)
если выходим по back (или явному finish()) то состояние сохранять не нужно, так получается по логике приложения?
и если другая активность запускается, то тоже сработает onSaveInstanceState
вот активность, показали ее, что-то там запустилось, анимация кнопок, прогрессбар, разные пользовательские изменения,
если идет поворот, то срабатывает onSaveInstanceState, там сохраняем состояние (а закрываем все диалоги и анимации в onPause конечно)
если выходим по back (или явному finish()) то состояние сохранять не нужно, так получается по логике приложения?
и если другая активность запускается, то тоже сработает onSaveInstanceState
Re: Зачем нужен метод onSaveInstanceState, если...
Я тут вспомнил, вроде бы поднимался уже вопрос связанный с Lifecycle.
исходя из урока:
http://startandroid.ru/ru/uroki/vse-uro ... krana.html
onSaveInstanceState вызывается перед onPause. Я проверил у себя на устройстве (Samsung Galaxy Nexus) onSaveInstanceState срабатывает после onPause, но перед onStop. Странно, это... но думаю в данной задаче это не должно помешать.
исходя из урока:
http://startandroid.ru/ru/uroki/vse-uro ... krana.html
onSaveInstanceState вызывается перед onPause. Я проверил у себя на устройстве (Samsung Galaxy Nexus) onSaveInstanceState срабатывает после onPause, но перед onStop. Странно, это... но думаю в данной задаче это не должно помешать.