Что можно сделать в scope который хранит context

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

Ответ

В CoroutineScope с Context можно выполнять различные операции, например:

  1. Запуск корутин:
val scope = CoroutineScope(Dispatchers.Main)
scope.launch {
    // Работа с UI
}
  1. Отмена всех корутин при уничтожении компонента:
scope.cancel() // Отменяет все дочерние корутины
  1. Изменение контекста:
val newScope = scope + Dispatchers.IO
  1. Обработка ошибок через CoroutineExceptionHandler:
val handler = CoroutineExceptionHandler { _, throwable -> 
    Log.e("Scope", "Error", throwable) 
}
val scope = CoroutineScope(Dispatchers.Main + handler)

Важно избегать утечек памяти - не использовать Activity/Fragment контекст напрямую в долгоживущих скоупах.