Sobes.tech
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(), които проверяват състоянието на анулиране и позволяват корутината да приключи правилно.