Как создать CoroutineScope

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

Ответ

val scope = CoroutineScope(Dispatchers.Main + SupervisorJob())

Ключевые моменты:

  1. Обязательно указывайте диспетчер (Dispatchers.Main/IO/Default)
  2. SupervisorJob() предотвращает отмену всех дочерних корутин при ошибке одной
  3. Не забывайте отменять scope при уничтожении компонента:
scope.cancel() // в onDestroy() или аналогичном методе

Для ViewModel используйте viewModelScope, для Lifecycle - lifecycleScope, они уже содержат правильную конфигурацию и автоматически отменяются.