Annuler et synchroniser des coroutines

Dans les exemples précédents utilisant les trois constructeurs runBlocking, launch et async, nous n’avons stocké le résultat que pour le constructeur async afin d’attendre la fin de la coroutine.

Il est également possible de stocker le résultat du constructeur launch dans une variable. L’objet renvoyé est de type Job. Tout comme l’objet renvoyé par le constructeur async (pour mémoire, le type de cet objet est Deferred, mais ce type hérite du type Job). Job

Nous avons eu un aperçu de l’utilité d’un objet de type Job grâce au constructeur async. Il permet non seulement d’attendre la fin de l’exécution de la coroutine, mais aussi d’obtenir de précieuses informations sur celle-ci et de la manipuler.

1. Connaître l’état d’une coroutine

Un objet de type Job permet d’obtenir des informations sur le cycle de vie de la coroutine, notamment grâce à trois propriétés booléennes :

  • isActive : sa valeur est true quand la coroutine a démarré et qu’elle n’est pas terminée. isActive

  • isCompleted : sa valeur est true quand la coroutine est terminée. isCompleted

  • isCancelled : sa valeur est true quand la coroutine a été annulée. isCancelled

Soit un programme très simple dont le but est de lancer une coroutine, de la suspendre pendant 100 millisecondes...

couv_RIKOT.png

Découvrez 

le livre :

Aussi inclus dans nos :

Précédent
Créer des coroutines
Suivant
Des coroutines dans des coroutines