Как уже упоминалось, SingleInstanceService позволяет приложениям, запущенным в Java Web Start, регистрироваться как синглтоны и передаваться в новых наборах параметров, когда пользователь пытается запустить их новые экземпляры.
Как это работает ?
Мы регистрируем слушателей в службе один раз, и это не позволит ему создать еще один экземпляр. Но в основном, как это работает, я не понимаю.
SingleInstanceService sis;
...
try {
sis = (SingleInstanceService)ServiceManager.lookup("javax.jnlp.SingleInstanceService");
} catch (UnavailableServiceException e) { sis=null; }
...
// Register the single instance listener at the start of your application
SISListener sisL = new SISListener();
sis.addSingleInstanceListener(sisL);
...
// Remember to remove the listener before your application exits
sis.removeSingleInstanceListener(sisL);
System.exit(0);
// Implement the SingleInstanceListener for your application
class SISListener implements SingleInstanceListener {
public void newActivation(String[] params) {
// your code to handle the new arguments here
...
}
}
что я хочу знать, так это то, как он не разрешит другой экземпляр после того, как мы свяжем наше приложение с SingleInstanceListener?