Жизненный цикл Андроид-приложений: навигация и стек переходов
В прошлой статье мы рассмотрели жизненный цикл одной активности и несколько соответствующих сценариев. В этот раз поговорим про два сценария, связанные с навигацией.
Следует учесть, что рассматриваемые группы событий отрабатываются параллельно. При этом поток выполнения может переключиться с одной группы на другую в любое время, поэтому порядок вызовов методов не определён. Тем не менее внутри группы последовательный порядок вызовов методов гарантирован. Кроме того, описанные ниже сценарии не применяются к задачам и активностям с кастомным режимом запуска либо заданным контекстом задачи. Более подробную информацию всегда можно найти в документации.
Сценарий № 1: навигация между активностями
Рассмотрим сценарий завершения и повторного запуска приложения:
Здесь при старте новой активности первая активность останавливается (но не уничтожается), что напоминает переход пользователя из приложения с помощью кнопки «Home». При этом, когда пользователь нажмёт на кнопку «Back», вторая активность разрушится и завершится.
Управление состоянием
Важно понять, что метод
Когда система уничтожит процесс для освобождения ресурсов, возникнет другой сценарий, где состояние потребуется восстановить.
Сценарий № 2: изменения конфигурации и активности в стеке переходов
Управление состоянием
В этом случае сохранение состояния имеет значение не только для активности переднего плана. Дело в том, что все активности в стеке должны восстановить собственные состояния после изменений конфигурации, дабы заново построить UI. Вдобавок к этому, система способна завершать процесс практически в любой момент, поэтому надо быть готовым к восстановлению состояния в любой момент.
Сценарий № 3: завершение процесса
Если Android нуждается в ресурсах, происходит завершение фоновых приложений.
Управление состоянием
Да, весь стек переходов сохраняется, однако, несмотря на это, активности восстанавливаются лишь тогда, когда они заново создаются. Это необходимо для эффективного использования ресурсов системы. Подробнее об этом можете почитать тут.
Источник — «The Android Lifecycle cheat sheet — part II: Multiple activities».