Question

Je souhaite enregistrer les paramètres du programme chaque fois que l'utilisateur le quitte. J'ai donc besoin d'un moyen d'appeler une fonction lorsque l'utilisateur quitte le programme. Comment je fais ça?

J'utilise Java 1.5.

Était-ce utile?

La solution

Vous pouvez ajouter un point d'arrêt à votre application en procédant comme suit:

Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
    public void run() {
        // what you want to do
    }
}));

Cela revient en gros à avoir un bloc try {} finally {} autour de l'ensemble de votre programme et englobe en gros ce qu'il y a dans le bloc finally.

Notez les mises en garde !

Autres conseils

Ajout d'un point d'arrêt addShutdownHook (java.lang.Thread) est probablement ce que vous recherchez. Cette approche présente toutefois des problèmes:

  • vous perdrez les modifications si le programme échoue de manière incontrôlée (c'est-à-dire s'il est tué)
  • vous perdrez les modifications s'il y a des erreurs (permission refusée, disque plein, erreurs réseau)

Il serait donc peut-être préférable de sauvegarder les paramètres immédiatement (éventuellement dans un thread supplémentaire pour éviter les temps d'attente).

Créez-vous une application graphique autonome (par exemple, Swing)?

Si tel est le cas, vous devez déterminer la manière dont vous fournissez des options à vos utilisateurs pour leur permettre de quitter l'application. À savoir, s’il doit y avoir un menu Fichier, je pense qu’il y aura un "Quitter" élément du menu. En outre, si l'utilisateur ferme la dernière fenêtre de l'application, je m'attendrais également à ce qu'elle quitte l'application. Dans les deux cas, vous devez appeler le code qui gère l’enregistrement des préférences de l’utilisateur.

Utilisation de Runtime.getRuntime (). addShutdownHook () est certainement un moyen de le faire - mais si vous écrivez des applications Swing, je vous recommande vivement de jeter un coup d'œil à JSR 296 (Swing Application Framework)

Voici un bon article sur les bases: http: //java.sun. com / developer / technicalArticles / javase / swingappfr / .

L'implémentation de référence JSR fournit le type de fonctionnalités que vous recherchez à un niveau d'abstraction plus élevé que l'ajout de crochets d'arrêt.

Voici l'implémentation de référence: https://appframework.dev.java.net/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top