Junior — Middle
Как можете да прекъснете или отмените изпълнението на асинхронна корутина във вашето приложение?
sobes.tech AI
Отговор от AI
В Kotlin механизмът за прекъсване или анулиране на асинхронна корутина се осъществява чрез механизма за анулиране чрез Job. За да анулирате корутината, трябва да извикате метода cancel() на съответния Job.
Пример:
val job = CoroutineScope(Dispatchers.Default).launch {
repeat(1000) { i ->
println("Работя $i ...")
delay(500)
}
}
// По-късно, за да прекратите изпълнението:
job.cancel()
Важно е вътре в корутината да има точки за анулиране — например, извиквания на suspend функции като delay(), които проверяват състоянието на анулиране и позволяват корутината да приключи правилно.