Вызовите метод, когда Java-приложение закроется - PullRequest
2 голосов
/ 06 января 2012

Я хочу вызвать метод, когда я принудительно завершаю свое Java-приложение. Мне нужно освободить ресурс, который я использовал в своем приложении. Пожалуйста, помогите мне.

Спасибо

Ответы [ 3 ]

8 голосов
/ 06 января 2012

Это немного зависит от того, что вы подразумеваете под «принудительно», но я ожидаю, что вы захотите добавить хук выключения.

Перехватчики завершения работы - это небольшие потоки, которые вызываются всякий раз, когда Java пытается завершить работу. Вы можете добавить один, используя API времени выполнения, например:

Runtime.getRuntime().addShutdownHook(Thread hook)

Конечно, если вы действительно принудительно завершите работу (выключив компьютер или запустив на нем kill -9), операционная система закроет Java, не давая ей возможности что-либо очистить. , В этом случае вы ничего не сможете с этим поделать.

1 голос
/ 06 января 2012

Вам нужно использовать Shutdownhook: Вот пример:

 Runtime.getRuntime ().addShutdownHook ( 
new Thread () {   
          @Override    
         public void run () {    
             System.out.println ( "Shutdown hook" );  

        }      
   } ); 
1 голос
/ 06 января 2012

Это будет то, что вы хотите:

Runtime.getRuntime().addShutdownHook(new Thread() {
    public void run() { 
        // release your resource
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...