Ответ
Для создания ViewModelScope в Android используйте viewModelScope, который автоматически предоставляется классом ViewModel. Он привязан к жизненному циклу ViewModel и отменяется при ее очистке (onCleared).
Пример:
class MyViewModel : ViewModel() {
fun fetchData() {
viewModelScope.launch {
// Код корутины (например, вызов suspend-функций)
}
}
}
Если нужно создать кастомный CoroutineScope (например, для тестов), можно использовать:
private val customScope = CoroutineScope(SupervisorJob() + Dispatchers.Main)
override fun onCleared() {
customScope.cancel()
super.onCleared()
}
Важно: Для работы viewModelScope добавьте зависимость:
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2"