我想在每次用户退出程序时保存程序设置。所以当用户退出程序时我需要一种方法来调用函数。我该怎么做?
我正在使用Java 1.5。
答案 0 :(得分:32)
您可以通过执行以下操作向应用程序添加关闭挂钩:
Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
public void run() {
// what you want to do
}
}));
这基本上相当于在整个程序中使用try {} finally {}块,并且基本上包含了finally块中的内容。
请注意caveats虽然!
答案 1 :(得分:10)
添加关闭挂钩addShutdownHook(java.lang.Thread)可能就是你要找的。但是,这种方法存在问题:
因此,最好立即保存设置(可能在额外的线程中,以避免等待时间)。
答案 2 :(得分:0)
您是否正在创建一个独立的GUI应用程序(即Swing)?
如果是这样,您应该考虑如何向用户提供如何退出应用程序的选项。 也就是说,如果有一个文件菜单,我希望会有一个“退出”菜单项。 此外,如果用户关闭应用程序中的最后一个窗口,我也希望它退出应用程序。 在这两种情况下,它都应该调用处理保存用户首选项的代码。
答案 3 :(得分:0)
使用Runtime.getRuntime()。addShutdownHook()肯定是一种方法 - 但如果您正在编写Swing应用程序,我强烈建议您查看JSR 296(Swing应用程序框架)
这是一篇关于基础知识的好文章:http://java.sun.com/developer/technicalArticles/javase/swingappfr/。
JSR参考实现提供了比在添加关闭钩子时更高级别的抽象所需的功能。