繁体   English   中英

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

[英]Calling function when program exits in java

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

我使用的是Java 1.5。

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

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

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

请注意警告

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

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

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

你在创建一个独立的GUI应用程序(即Swing)吗?

如果是这样,您应该考虑如何为用户提供如何退出应用程序的选项。 也就是说,如果有一个文件菜单,我希望会有一个“退出”菜单项。 此外,如果用户关闭应用程序中的最后一个窗口,我也希望它退出应用程序。 在这两种情况下,它都应该调用处理保存用户首选项的代码。

使用Runtime.getRuntime()。addShutdownHook()肯定是一种方法 - 但是如果你正在编写Swing应用程序,我强烈建议你看一下JSR 296(Swing应用程序框架)

这是一篇关于基础知识的好文章: http//java.sun.com/developer/technicalArticles/javase/swingappfr/

与添加关闭挂钩相比,JSR参考实现提供了更高抽象级别所需的功能。

以下是参考实现: https//appframework.dev.java.net/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM