Middle
Para que é que serve o objeto Job no Android?
sobes.tech IA
Resposta da IA
Job em Kotlin Coroutines é utilizado para gerir o ciclo de vida e cancelar as corutinas.
Principais aplicações:
- Gestão do ciclo de vida: Permite acompanhar o estado da corutina (Active, Completing, Completed, Cancelling, Cancelled, New).
- Cancelar a corutina: A chamada a
job.cancel()oujob.cancelAndJoin()permite parar a execução da corutina. - Concorrência estruturada:
Jobé um elemento da hierarquia de corutinas. O cancelamento doJobpai leva ao cancelamento de todos osJobfilhos. - Aguardar a conclusão:
job.join()faz com que a corutina atual espere pela conclusão de outra corutina representada por esteJob. - Tratamento de exceções: Exceções não tratadas numa corutina filha com
Jobpropagam-se para cima na hierarquia deJobe podem ser capturadas por manipuladores especiais (por exemplo,CoroutineExceptionHandler).
Exemplo de uso para iniciar e cancelar:
fun startAndCancelCoroutine() {
// Pode obter um CoroutineScope de ViewModel, Activity, Fragment, etc.
val scope = CoroutineScope(Dispatchers.IO)
val job: Job = scope.launch {
// Cálculos longos
delay(5000)
println("Corutina terminada")
}
// Cancelar a corutina após 2 segundos
scope.launch {
delay(2000)
job.cancel()
println("Corutina cancelada")
}
}