Какие знаешь методы Job в Coroutines

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

Ответ

launch – запускает корутину без возврата результата (fire-and-forget).
async – запускает корутину и возвращает Deferred<T>, позволяя получить результат через await().
cancel() – отменяет Job и все его дочерние корутины.
join() – приостанавливает текущую корутину до завершения Job.
cancelAndJoin() – комбинация cancel() и join().

Пример:

val job = launch {
    delay(1000)
    println("Done")
}
job.join() // Ждём завершения

Доп. методы:

  • isActive – проверяет, не отменён ли Job.
  • start() – запускает ленивую корутину (если создана через launch(start = CoroutineStart.LAZY)).