程序在java中退出时调用函数

14 java events

我想在每次用户退出程序时保存程序设置.所以当用户退出程序时我需要一种方法来调用函数.我怎么做?

我使用的是Java 1.5.

Mat*_*ion 36

您可以通过执行以下操作向应用程序添加关闭挂钩:

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

这基本上相当于在整个程序中使用try {} finally {}块,并且基本上包含了finally块中的内容.

请注意警告!


mfx*_*mfx 10

添加一个关闭钩子addShutdownHook(java.lang.Thread)可能就是你要找的东西.但是,这种方法存在问题:

  • 如果程序以不受控制的方式中止(即如果它被杀死),你将失去更改
  • 如果有错误(权限被拒绝,磁盘已满,网络错误),您将丢失更改

因此,最好立即保存设置(可能在额外的线程中,以避免等待时间).