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.