Ответ
Scope в ViewModel определяет его жизненный цикл. ViewModel остается в памяти, пока его Scope активен. Например, при использовании viewModelScope в ViewModel:
class MyViewModel : ViewModel() {
fun fetchData() {
viewModelScope.launch {
// Работает, пока ViewModel жива
val data = repository.loadData()
}
}
}
Основные Scope:
- Activity Scope – уничтожается при завершении Activity
- Fragment Scope – уничтожается при детаче Fragment
- Navigation Graph Scope – живет пока граф навигации активен
ViewModel переживает изменения конфигурации, но уничтожается, когда связанный с ним Scope (Activity/Fragment) завершается окончательно.