如何在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

回到顶部