如何在JavaFx中捕获强制退出或意外关闭的事件?
我正在制作一个桌面应用程序,它具有服务器的登录和注销功能。如何在JavaFx中捕获强制退出或意外关闭的事件?
我需要每当有人关闭窗口申请注销,所以我用这些代码
primaryStage.setOnCloseRequest(new EventHandler<WindowEvent>() { @Override
public void handle(WindowEvent event) {
event.consume();
closeWindow();
}
});
其中closeWindow()包含注销等相关措施。
现在应用程序意外关闭或某人强行退出/关闭它从任务管理器(通过结束进程)时出现问题。
JavaFX是否有任何事件可以强制退出或意外关闭?或者如果有任何方法阻止它?
回答:
当您的应用程序通过TaskManager
关闭时,您唯一的选择是使用虚拟机的shutdown hook。
有一些例子,例如, here。
回答:
有一个在应用程序类的方法
@Override public void stop() throws Exception {
super.stop();
System.out.println("logout");
}
。
回答:
如果您正在使用该注销过程的任务,请尝试使用setDaemon
方法进行游戏。我通过显示“加载”窗口并在任务完成后关闭该窗口来解决类似的情况。你也可以尝试。
回答:
public class Gui extends Application { static {
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
closeWindow();
}
});
}
@Override
public final void start(Stage primaryStage) throws Exception {
// ...
}
@Override
public void stop() throws Exception {
// ...
System.exit(0);
}
}
以上是 如何在JavaFx中捕获强制退出或意外关闭的事件? 的全部内容, 来源链接: utcz.com/qa/260351.html