Certaines applications, sous la forme de clients lourds, posent parfois le problème de la gestion de leur fermeture par l'utilisateur. En effet, lorsqu'elles communiquent avec un serveur, il peut s'avérer indispensable de savoir quand l'utilisateur quitte son application afin par exemple de le déconnecter et terminer la session côté serveur. Ou tout simplement de sauvegarder l'état courant de l'application afin de le restaurer plus tard (comme le workspace Eclipse!). Mais il existe plusieurs possibilités pour fermer une application de ce genre : le bouton de l'interface système (la croix windows par ex), ou les touches Ctrl+C lors d'un lancement en ligne de commande...
Afin d'être certain d'intervenir au bon moment, il est possible d'ajouter un "shutdown hook" à la JVM : il sera exécuté juste avant sa fermeture, après qu'elle ait elle-même terminé toutes ses opérations. Pour ne pas plagier ou paraphraser un article existant, voici un lien vers celui que j'ai récemment utilisé, très clair et concis.
Un point important à noter tout de même : comme indiqué dans les commentaires de l'article cité, il est possible d'ajouter plusieurs hooks à la fermeture de la JVM, mais chacun d'eux est considéré comme un Thread indépedant et ils sont donc tous lancés en même temps. Attention donc aux effets de bords entre les actions!
Hope this helps!
0 commentaires:
Enregistrer un commentaire