Sobes.tech
Junior — Middle

Come si può interrompere o annullare l'esecuzione di una coroutine asincrona nella tua applicazione?

sobes.tech AI

Risposta dell'AI

In Kotlin, per interrompere o annullare una coroutine asincrona si utilizza il meccanismo di cancellazione tramite Job. Per cancellare la coroutine, è necessario chiamare il metodo cancel() sul Job corrispondente.

Esempio:

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

// Più tardi, per cancellare l'esecuzione:
job.cancel()

È importante che all'interno della coroutine ci siano punti di cancellazione — ad esempio, chiamate a funzioni suspend, come delay(), che verificano lo stato di cancellazione e consentono alla coroutine di terminare correttamente.