Junior — Middle
Hogyan lehet megszakítani egy Kotlin Coroutine segítségével indított feladatot?
sobes.tech MI
Válasz az MI-től
A Kotlin Coroutine segítségével indított feladat törléséhez az Job révén történő törlési mechanizmust használjuk.
Amikor coroutine-t indítasz, az egy Job objektumot ad vissza, amit a törléshez lehet használni:
val job = CoroutineScope(Dispatchers.Default).launch {
// Hosszú művelet
for (i in 1..1000) {
if (!isActive) return@launch // törlés ellenőrzése
println("Iteráció $i")
delay(100)
}
}
// Később, a feladat törléséhez:
job.cancel()
Fontos, hogy a coroutine belsejében rendszeresen ellenőrizd az isActive állapotát vagy olyan funkciókat használj, amelyek támogatják a törlést (pl. delay), hogy a coroutine megfelelően befejeződhessen a törléskor.
Emellett használható a withTimeout vagy a withTimeoutOrNull automatikus törléshez időkorlát esetén.