Что такое withContext в Coroutines

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

Ответ

withContext — это функция-приостановка в Kotlin Coroutines, которая позволяет временно переключить контекст выполнения корутины (например, с Dispatchers.Main на Dispatchers.IO) и вернуть результат. После выполнения блока кода внутри withContext корутина автоматически возвращается к исходному диспетчеру.

Ключевые особенности:

  • Не создаёт новую корутину, а лишь меняет контекст текущей.
  • Возвращает результат последнего выражения в блоке.
  • Отменяется, если отменяется родительская корутина.

Пример:

suspend fun loadData(): String = withContext(Dispatchers.IO) {
    // Выполняется в IO-потоке
    fetchFromNetwork() 
}