Что возвращает launch

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

Ответ

launch возвращает Job — объект, представляющий корутину. Job позволяет управлять жизненным циклом корутины (отмена, ожидание завершения).

Пример:

val job = lifecycleScope.launch {  
    delay(1000)  
    Log.d("Test", "Done")  
}  
job.cancel() // Прерывает выполнение корутины  

Нюансы:

  • Job — часть иерархии структурной конкурентности.
  • Если корутина завершилась (успешно или с ошибкой), Job переходит в завершённое состояние.
  • Можно использовать join() для ожидания завершения:
job.join() // Блокирует текущую корутину до завершения job