Back to questions
Ozon Fresh
Junior — Middle
78
Можешь объяснить, что такое CoroutineScope и зачем он нужен в Kotlin?
Companies where asked
Joy Dev
IBS
Answer from AI
sobes.tech AI
CoroutineScope в Kotlin — это область видимости для корутин, которая управляет их жизненным циклом. Он нужен для того, чтобы запускать корутины и контролировать их выполнение, отмену и завершение.
Основные задачи CoroutineScope:
- Определяет контекст, в котором запускаются корутины (например, диспетчер потоков).
- Позволяет отменять все корутины, запущенные в этом скоупе, одним вызовом.
- Помогает избежать утечек памяти, связывая корутины с жизненным циклом компонента (например, Activity или ViewModel).
Пример использования в Android:
class MyViewModel : ViewModel(), CoroutineScope {
private val job = Job()
override val coroutineContext = Dispatchers.Main + job
fun loadData() {
launch {
// корутина выполняется в Main потоке
val data = fetchData()
// обновление UI
}
}
override fun onCleared() {
super.onCleared()
job.cancel() // отменяем все корутины при уничтожении ViewModel
}
}