Sobes.tech
Junior — Middle

Como pode interromper ou cancelar a execução de uma coroutine assíncrona na sua aplicação?

sobes.tech IA

Resposta da IA

No Kotlin, para interromper ou cancelar uma coroutine assíncrona, utiliza-se o mecanismo de cancelamento através de Job. Para cancelar a coroutine, deve-se chamar o método cancel() no Job correspondente.

Exemplo:

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

// Mais tarde, para cancelar a execução:
job.cancel()

É importante que dentro da coroutine existam pontos de cancelamento — por exemplo, chamadas a funções suspend, como delay(), que verificam o estado de cancelamento e permitem que a coroutine termine corretamente.