Sobes.tech
Junior — Middle

Cum se poate întrerupe sau anula executarea unei coroutine asincrone în aplicația dvs.?

sobes.tech AI

Răspuns de la AI

În Kotlin, pentru a întrerupe sau anula o corutină asincronă, se utilizează mecanismul de anulare prin Job. Pentru a anula corutina, trebuie să apelați metoda cancel() pe Job-ul corespunzător.

Exemplu:

val job = CoroutineScope(Dispatchers.Default).launch {
    repeat(1000) { i ->
        println("Lucrez $i ...")
        delay(500)
    }
}

// Mai târziu, pentru a anula execuția:
job.cancel()

Este important ca în interiorul corutinei să existe puncte de anulare — de exemplu, apeluri la funcții suspend, precum delay(), care verifică starea de anulare și permit corutinei să se încheie corect.