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

Back stack на Android

Вопрос

Что происходит с back stack, если открыть экран с флагом popUpTo("login") { inclusive = true } в Navigation Compose после успешного входа?

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

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

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

Коротко

Правильный ответ: Экраны до логина включительно снимаются со стека, и «назад» не вернёт на вход. popUpTo снимает экраны со стека до указанного маршрута, inclusive = true снимает и его самого.

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

  1. Логин остаётся под главным экраном, а inclusive лишь убирает анимацию
  2. Приложение закрывается, потому что стек остаётся пустым до показа нового экрана
  3. Стек полностью очищается, включая новый экран, и навигация начинается заново
  4. Экраны до логина включительно снимаются со стека, и «назад» не вернёт на входправильный ответ

Разбор

popUpTo снимает экраны со стека до указанного маршрута, inclusive = true снимает и его самого. Это стандартный приём для потоков входа и онбординга: после завершения пользователь не должен возвращаться назад кнопкой. Новый экран добавляется после очистки и остаётся в стеке.

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

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

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