Middle
À quoi sert l'objet Job dans Android?
sobes.tech IA
Réponse de l'IA
Job dans Kotlin Coroutines est utilisé pour gérer le cycle de vie et l'annulation des coroutines.
Applications principales :
- Gestion du cycle de vie : Permet de suivre l'état de la coroutine (Active, Completing, Completed, Cancelling, Cancelled, New).
- Annulation de la coroutine : L'appel à
job.cancel()oujob.cancelAndJoin()permet d'arrêter l'exécution de la coroutine. - Concurrence structurée :
Jobest un élément de la hiérarchie des coroutines. L'annulation duJobparent entraîne l'annulation de tous lesJobenfants. - Attente de la fin :
job.join()force la coroutine en cours à attendre la fin d'une autre coroutine représentée par ceJob. - Gestion des exceptions : Les exceptions non gérées dans une coroutine enfant avec
Jobse propagent vers le haut dans la hiérarchie deJobet peuvent être interceptées par des gestionnaires spéciaux (par exemple,CoroutineExceptionHandler).
Exemple d'utilisation pour lancer et annuler :
fun startAndCancelCoroutine() {
// Un CoroutineScope peut être obtenu depuis ViewModel, Activity, Fragment, etc.
val scope = CoroutineScope(Dispatchers.IO)
val job: Job = scope.launch {
// Calculs longs
delay(5000)
println("Coroutine terminée")
}
// Annuler la coroutine après 2 secondes
scope.launch {
delay(2000)
job.cancel()
println("Coroutine annulée")
}
}