Вызывание функции, когда программа выходит в Java

14
задан Ben 4 March 2012 в 04:55
поделиться

4 ответа

Можно добавить, что завершение работы сцепляется с приложением путем выполнения следующего:

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

Это в основном эквивалентно наличию попытки {} наконец {} блок вокруг Вашей всей программы и в основном охватывает то, что находится в наконец блок.

отметьте эти протесты хотя!

36
ответ дан 1 December 2019 в 06:32
поделиться

Добавление рычага завершения работы addShutdownHook (java.lang. Поток) , вероятно, что Вы ищете. Существуют проблемы с тем подходом, хотя:

  • Вы потеряете изменения, если программа прервется неконтролируемым способом (т.е. если она будет уничтожена)
  • , то Вы потеряете изменения, если будут ошибки (отклоненное разрешение, диск полные, сетевые ошибки)

, Таким образом, могло бы быть лучше сохранить настройки сразу (возможно в дополнительном потоке, постараться не ожидать времена).

10
ответ дан 1 December 2019 в 06:32
поделиться

Используя Runtime.getRuntime () .addShutdownHook (), конечно, способ сделать это - но если Вы пишете приложения Swing, я настоятельно рекомендую смотреть на JSR 296 (Среда разработки приложения Swing)

Вот хорошая статья об основах: http://java.sun.com/developer/technicalArticles/javase/swingappfr/ .

ссылочная реализация JSR обеспечивает вид функций, которые Вы ищете в более высоком уровне абстракции, чем добавляющие рычаги завершения работы.

Вот ссылочная реализация: https://appframework.dev.java.net /

0
ответ дан 1 December 2019 в 06:32
поделиться

Вы создаете одинокое приложение для GUI (т.е. Swing)?

Если так, необходимо рассмотреть, как Вы предоставляете возможности своим пользователям, как выйти из приложения. А именно, если бы там будет меню File, я ожидал бы, что будет пункт меню "Exit". Кроме того, если бы пользователь закрывает последнее окно в приложении, я также ожидал бы, что это выйдет из приложения. В обоих случаях это должно назвать код, который обрабатывает сохранение предпочтений пользователя.

0
ответ дан 1 December 2019 в 06:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: