Выбор ответа Senior Навигация, координаторы и deep links обновлено

Восстановление навигации после смерти процесса

Вопрос

Пользователь был на третьем экране оформления, приложение выгрузили в фоне. Что должно произойти при возврате?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Восстановиться стек и введённые данные: на Android это ожидаемо, на iOS через сохранённый путь. На Android система восстанавливает back stack и вызывает экраны с сохранённым состоянием (SavedStateHandle, rememberSaveable), но данные из памяти теряются, и это частый источник крэшей.

Варианты ответа

  1. Восстановиться стек и введённые данные: на Android это ожидаемо, на iOS через сохранённый путьправильный ответ
  2. Ничего особенного: мобильные ОС не выгружают приложения в фоне, пока есть свободная память
  3. Приложение должно стартовать с нуля с главного экрана, это нормальное поведение для мобильных ОС
  4. Восстанавливается только последний экран без стека и без введённых данных, остальное теряется

Разбор

На Android система восстанавливает back stack и вызывает экраны с сохранённым состоянием (SavedStateHandle, rememberSaveable), но данные из памяти теряются, и это частый источник крэшей. На iOS выгрузка в фоне тоже обычна, восстановление делают через сохранение пути навигации и черновиков. «Начать с нуля» на третьем шаге оплаты это плохой опыт. Выгрузка в фоне происходит постоянно.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме