Что такое Couroutin Context

«Что такое Couroutin Context» — вопрос из категории Coroutines и Flow, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Coroutine Context — это набор элементов, определяющих поведение корутины. Он включает в себя:

  1. Job – управляет жизненным циклом корутины (запуск, отмена).
  2. Dispatcher – определяет, на каком потоке выполняется корутина (например, Dispatchers.IO, Dispatchers.Main).
  3. ExceptionHandler – обрабатывает неотловленные исключения.
  4. CoroutineName – имя для отладки.

Контекст можно комбинировать с помощью оператора +:

val context = Dispatchers.IO + CoroutineName("MyCoroutine") + Job()

Пример использования:

val customContext = Dispatchers.Default + CoroutineName("BackgroundWork")
val job = CoroutineScope(customContext).launch {
    println("Running in ${coroutineContext[CoroutineName]?.name}")
}

Контекст наследуется от родительской корутины, если не переопределен явно.