Что можно определить при создании CoroutineScope

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

Ответ

CoroutineScope определяет контекст выполнения корутин и их жизненный цикл. При создании можно указать:

  1. Dispatcher - определяет поток выполнения (например, Dispatchers.Main, Dispatchers.IO).
  2. Job - для управления жизненным циклом (отмена всех корутин в scope).
  3. CoroutineExceptionHandler - обработка необработанных исключений.

Пример:

val scope = CoroutineScope(
    Dispatchers.IO + Job() + CoroutineExceptionHandler { _, e ->
        Log.e("Scope", "Error: $e")
    }
)

Важно: не забывайте отменять scope через scope.cancel(), чтобы избежать утечек памяти.