Что такое CoroutineContext

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

Ответ

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

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

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

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

Каждый элемент контекста уникален по ключу (например, Job или Dispatcher). При объединении дублирующиеся элементы перезаписываются.