Sobes.tech
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.