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

Что передавать в аргументах навигации

Вопрос

Как правильно открыть экран статьи из списка?

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

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

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

Коротко

Правильный ответ: Передать id статьи, а экран загрузит данные по id из репозитория. Аргументы хранятся в Bundle записи back stack и сохраняются при смерти процесса, поэтому должны быть маленькими.

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

  1. Передать весь объект Article с текстом и картинками в аргументах
  2. Положить статью в глобальную переменную
  3. Передать id статьи, а экран загрузит данные по id из репозиторияправильный ответ
  4. Сохранить статью в SharedPreferences перед переходом

Разбор

Аргументы хранятся в Bundle записи back stack и сохраняются при смерти процесса, поэтому должны быть маленькими. Передают идентификатор, а экран получает данные из единого источника правды (репозиторий, база). Большой объект замедляет навигацию и может вызвать TransactionTooLargeException. Глобальная переменная не переживёт смерть процесса, SharedPreferences для этого не предназначены.

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

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

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