Sobes.tech
Back to questions
Junior — Middle
78

Можешь объяснить, что такое CoroutineScope и зачем он нужен в Kotlin?

Companies where asked
Ozon FreshOzon Fresh
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
    }
}