Для чего нужен Job в Coroutines

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

Ответ

Job в Coroutines представляет собой жизненный цикл корутины и позволяет управлять ею. Он может быть использован для отмены корутины, проверки её состояния (активна/завершена) или ожидания завершения. Job является частью CoroutineContext и часто используется в связке с CoroutineScope.

Пример:

val job = CoroutineScope(Dispatchers.IO).launch {
    // Долгая операция
    delay(1000)
    println("Job completed")
}

// Отмена корутины
job.cancel()

// Ожидание завершения
runBlocking { job.join() }

Job особенно полезен при работе с жизненным циклом Android-компонентов, например для отмены всех корутин при уничтожении Activity.