Class UniqueInstance

java.lang.Object
  extended by UniqueInstance

public class UniqueInstance
extends java.lang.Object

Cette classe permet d'assurer l'unicité de l'instance de l'application. Deux applications ne peuvent pas être lancées simultanément. Voici un exemple typique d'utilisation :

 // Port à utiliser pour communiquer avec l'instance de l'application lancée.
 final int PORT = 32145;
 // Message à envoyer à l'application lancée lorsqu'une autre instance essaye de démarrer.
 final String MESSAGE = "nomDeMonApplication";
 // Actions à effectuer lorsqu'une autre instance essaye de démarrer.
 final Runnable RUN_ON_RECEIVE = new Runnable() {
     public void run() {
         if(mainFrame != null) {
             // Si la fenêtre n'est pas visible (uniquement dans le systray par exemple), on la rend visible.
             if(!mainFrame.isVisible())
                 mainFrame.setVisible(true);
             // On demande à la mettre au premier plan.
             mainFrame.toFront();
         }
     }                   
 });
                 
 UniqueInstance uniqueInstance = new UniqueInstance(PORT, MESSAGE, RUN_ON_RECEIVE);
 // Si aucune autre instance n'est lancée...
 if(uniqueInstance.launch()) {
     // On démarre l'application.
     new MonApplication();
 }
 

Author:
rom1v

Constructor Summary
UniqueInstance(int port)
          Créer un gestionnaire d'instance unique de l'application.
UniqueInstance(int port, java.lang.String message, java.lang.Runnable runOnReceive)
          Créer un gestionnaire d'instance unique de l'application.
 
Method Summary
 boolean launch()
          Essaye de démarrer le gestionnaire d'instance unique.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

UniqueInstance

public UniqueInstance(int port,
                      java.lang.String message,
                      java.lang.Runnable runOnReceive)
Créer un gestionnaire d'instance unique de l'application.

Parameters:
port - Port d'écoute utilisé pour l'unique instance de l'application.
message - Message à envoyer à l'éventuelle application déjà lancée, null si aucune action.
runOnReceive - Actions à effectuer lorsqu'une autre instance de l'application a indiqué qu'elle avait essayé de démarrer, null pour aucune action.

UniqueInstance

public UniqueInstance(int port)
Créer un gestionnaire d'instance unique de l'application. Ce constructeur désactive la communication entre l'instance déjà lancée et l'instance qui essaye de démarrer.

Parameters:
port - Port d'écoute utilisé pour l'unique instance de l'application.
Method Detail

launch

public boolean launch()
Essaye de démarrer le gestionnaire d'instance unique. Si l'initialisation a réussi, c'est que l'instance est unique. Sinon, c'est qu'une autre instance de l'application est déjà lancée. L'appel de cette méthode prévient l'application déjà lancée qu'une autre vient d'essayer de se connecter.

Returns:
true si l'instance de l'application est unique.