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