Sobes.tech
Junior — Middle

Dans quels cas et pourquoi la ViewModel est-elle recréée lors du changement de cycle de vie de l'Activity?

sobes.tech IA

Réponse de l'IA

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

Однако, если ViewModel используется через ViewModelProvider с привязкой к жизненному циклу Activity или Fragment, то при обычной смене конфигурации (например, поворот) ViewModel сохраняется и не пересоздаётся. Воссоздание происходит, если:

  • Activity уничтожается окончательно (например, пользователь нажал "назад").
  • Процесс приложения был убит системой, и Activity создаётся заново.

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

Это позволяет сохранять состояние UI между изменениями конфигурации, но не между полным уничтожением и созданием Activity.