Ответ
launch возвращает Job — объект, представляющий корутину. Job позволяет управлять жизненным циклом корутины (отмена, ожидание завершения).
Пример:
val job = lifecycleScope.launch {
delay(1000)
Log.d("Test", "Done")
}
job.cancel() // Прерывает выполнение корутины
Нюансы:
Job— часть иерархии структурной конкурентности.- Если корутина завершилась (успешно или с ошибкой),
Jobпереходит в завершённое состояние. - Можно использовать
join()для ожидания завершения:
job.join() // Блокирует текущую корутину до завершения job