Выбор ответа Middle Навигация спрашивают часто обновлено

Убрать экран входа из стека

Вопрос

После успешного входа пользователь попадает на главный экран. Как сделать, чтобы «Назад» не возвращало на экран входа?

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

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

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

Коротко

Правильный ответ: navigate(Home) { popUpTo<Login { inclusive = true } }. popUpTo<Login { inclusive = true } снимает со стека всё до экрана входа включительно, и главный становится корнем.

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

  1. navigate(Home) { popUpTo<Login> { inclusive = true } }правильный ответ
  2. navigate(Home) { launchSingleTop = true } после входа
  3. navigate(Home), затем popBackStack() сразу после перехода
  4. navigate(Home) и finish() у Activity после навигации

Разбор

popUpTo<Login> { inclusive = true } снимает со стека всё до экрана входа включительно, и главный становится корнем. Простой navigate (в том числе с launchSingleTop) оставит вход под главным. popBackStack() после перехода снимет сам главный экран. finish() закроет всю Activity, а с ней и приложение в single-activity архитектуре.

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

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

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