Ответ
Scopes в Kotlin (CoroutineScope, ViewModelScope, LifecycleScope) помогают управлять жизненным циклом корутин, автоматически отменяя их при завершении связанного контекста (например, уничтожение Activity/ViewModel). Это предотвращает утечки памяти и ненужную работу.
Пример с ViewModelScope:
class MyViewModel : ViewModel() {
fun fetchData() {
viewModelScope.launch {
val data = repository.loadData() // корутина отменится при clear() ViewModel
updateUi(data)
}
}
}
Преимущества:
- Автоматическая отмена корутин
- Чистая архитектура (не нужно вручную управлять Job)
- Интеграция с Android lifecycle