Ответ
withContext — это функция-приостановка в Kotlin Coroutines, которая позволяет временно переключить контекст выполнения корутины (например, с Dispatchers.Main на Dispatchers.IO) и вернуть результат. После выполнения блока кода внутри withContext корутина автоматически возвращается к исходному диспетчеру.
Ключевые особенности:
- Не создаёт новую корутину, а лишь меняет контекст текущей.
- Возвращает результат последнего выражения в блоке.
- Отменяется, если отменяется родительская корутина.
Пример:
suspend fun loadData(): String = withContext(Dispatchers.IO) {
// Выполняется в IO-потоке
fetchFromNetwork()
}