Sobes.tech
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.