Ответ
В Kotlin корутины создаются с помощью CoroutineScope и билдеров launch или async. Пример:
// Создание корутины в GlobalScope (не рекомендуется для production)
GlobalScope.launch {
// Код внутри корутины
delay(1000) // Неблокирующая задержка
println("Hello from coroutine!")
}
// Рекомендуемый способ - использование scope с жизненным циклом
class MyActivity : AppCompatActivity(), CoroutineScope by MainScope() {
fun startCoroutine() {
launch {
val result = async { fetchData() }.await()
updateUI(result)
}
}
override fun onDestroy() {
super.onDestroy()
cancel() // Отмена всех корутин при уничтожении Activity
}
}
Ключевые моменты:
- Используйте
Dispatchersдля указания потока (Main, IO, Default) launch- для fire-and-forget операцийasync- для операций с возвращаемым значением- Всегда управляйте жизненным циклом корутин