Каким образом ViewModel сохраняет свою жизнеспособность после уничтожения Activity?

ViewModel в Android сохраняет свою жизнеспособность после уничтожения Activity благодаря тому, что она связана с жизненным циклом компонента на уровне архитектуры, а не напрямую с Activity.

Короткий ответ

Что ответить на собеседовании

ViewModel в Android сохраняет свою жизнеспособность после уничтожения Activity благодаря тому, что она связана с жизненным циклом компонента на уровне архитектуры, а не напрямую с Activity.

Подробный разбор

Ответ с пояснениями

ViewModel в Android сохраняет свою жизнеспособность после уничтожения Activity благодаря тому, что она связана с жизненным циклом компонента на уровне архитектуры, а не напрямую с Activity.

Когда Activity уничтожается, например, при повороте экрана, система создает новую Activity, но ViewModel сохраняется и предоставляется новой Activity того же жизненного цикла.

Это достигается с помощью класса ViewModelProvider, который хранит экземпляр ViewModel в специальном хранилище, привязанном к жизненному циклу владельца (Activity или Fragment). Пока владелец жив, ViewModel сохраняется.

Таким образом, ViewModel позволяет сохранять состояние и данные между пересозданиями Activity без необходимости сохранять их вручную через onSaveInstanceState.

Пример:

val viewModel = ViewModelProvider(this).get(MyViewModel::class.java)

Здесь this — Activity или Fragment, и ViewModel будет жить, пока жив этот компонент, даже если Activity пересоздается.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку