gpt4 book ai didi

java - 我希望我的应用程序在关闭之前执行某些操作

转载 作者:行者123 更新时间:2023-12-01 18:38:20 25 4
gpt4 key购买 nike

如果我们希望程序正确关闭,我们输入frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

如果我希望我的 java 程序向文件写入一些内容然后自行关闭,该怎么办?

哪一种是实现它的最佳方式?

最佳答案

您可以尝试java.awt.event.WindowAdapter并重写此方法:

windowClosing(WindowEvent e)

@AndrewThompson 发表了很好的评论。此外,这里我刚刚假设了一个非常简单的仅 GUI 场景。通常,写入文件的线程还应该关心关闭文件 channel ,最好在 try/catch block 的finally 子句中。在我看来,在最后一刻关闭资源的整个想法不太好。

@Lind 在Runtime.addShutdownHook的javadoc中,您可以阅读:

“关闭钩子(Hook)在虚拟机生命周期的微妙时刻运行,因此应该进行防御性编码。特别是,它们应该被编写为线程安全的,并尽可能避免死锁。它们还应该不要盲目依赖可能已经注册了自己的关闭 Hook 的服务,因此可能会自行关闭。尝试使用其他基于线程的服务(例如 AWT 事件调度线程)可能会导致死锁。

所以一些小心是必要的。如果您在 shutdownhook 中使用您自己的程序或您自己的文件服务的一部分,它可能无法工作,但在 WindowAdapter 中可以工作。如果您只在 shutdownhook 中直接依赖 java.io-package 那么这种方法可能会起作用。

总的来说,我重复并确认资源最好不要这么晚关闭。您必须有充分的理由不这样做。

关于java - 我希望我的应用程序在关闭之前执行某些操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20872118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com