Ответ
ViewModelScope - это CoroutineScope, автоматически привязанный к жизненному циклу ViewModel. Он отменяет все корутины при очистке ViewModel (например, при завершении Activity/Fragment). Это предотвращает утечки памяти.
class MyViewModel : ViewModel() {
fun fetchData() {
viewModelScope.launch {
// Работа с корутиной
val data = repository.getData()
// Обновление UI
}
}
}
Ключевые особенности:
- Автоматическая отмена при onCleared()
- Использует Dispatchers.Main по умолчанию
- Не требует ручного управления жизненным циклом
- Доступен через зависимость
androidx.lifecycle:lifecycle-viewmodel-ktx