调用 System.exit(0) 后应用程序继续运行 - Java
我正在尝试在应用程序关闭之前清理应用程序中的资源,继我之前的问题之后(检测 Java 应用程序何时关闭)我已经实现了以下代码,可以完美地执行清理操作。
//Intercept when the application closes
Runtime.getRuntime().addShutdownHook(new Thread()
{
@Override
public void run()
{
//Reclaim resources from MIDI usage
if(_midiInstance.CleanUp())
{
Logger.Add("Closed resources successfully on ShutDown");
}
else
{
Logger.Add("Failed to close all resources on ShutDown");
}
System.exit(0);
}
});
虽然 System.exit(0);调用被理解并处理后,应用程序继续运行,只是没有可见的 GUI。我考虑过将 System.exit(0) 调用放在线程之外,但它超出了范围,没有任何其他线程或流在运行。
在连接 ShutDown 事件以确保所有内容都关闭时,我是否需要采取额外的步骤?
感谢您抽出宝贵的时间,我非常感激。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
发布评论
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
阅读您的其他问题后,您似乎可能没有调用 "="">dispose() 在您的窗口上。如果属实,那就可以解释问题的原因。
After reading your other question, it seems like your are probably not calling dispose() on your window(s). If true, that would explain the cause of your problem.