Как создать корутину с отложенным запуском

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

Ответ

Для создания корутины с отложенным запуском используйте CoroutineStart.LAZY. В этом режиме корутина запустится только при явном вызове start() или join(), либо при первом обращении к её результату (если она возвращает значение).

val lazyJob = CoroutineScope(Dispatchers.Default).launch(start = CoroutineStart.LAZY) {  
    delay(1000)  
    println("Lazy coroutine executed")  
}  

// Запуск вручную  
lazyJob.start()  

Особенности:

  • Пока корутина не запущена, она не потребляет ресурсы.
  • Если не вызвать start(), выполнение не начнётся.
  • Подходит для отложенных или условных операций.