Junior — Middle
Como cancelar uma tarefa iniciada através do Kotlin Coroutine?
sobes.tech IA
Resposta da IA
Para cancelar uma tarefa iniciada com Kotlin Coroutine, utiliza-se o mecanismo de cancelamento através de Job.
Quando inicia uma coroutine, ela devolve um objeto Job, que pode ser usado para cancelar:
val job = CoroutineScope(Dispatchers.Default).launch {
// Operação longa
for (i in 1..1000) {
if (!isActive) return@launch // verificação de cancelamento
println("Iteração $i")
delay(100)
}
}
// Mais tarde, para cancelar a tarefa:
job.cancel()
É importante dentro da coroutine verificar periodicamente o estado de isActive ou usar funções que suportem cancelamento (por exemplo, delay) para que a coroutine possa terminar corretamente ao ser cancelada.
Também é possível usar withTimeout ou withTimeoutOrNull para cancelamento automático por timeout.