2012-09-14 56 views
0

您好,我在JavaFX应用程序中遇到了一个小问题,当所有的浏览器窗口关闭时,终止java进程。我试图处理Stage.setOnHiding或.setOnCloseRequest并终止所有正在运行的线程,并在处理程序体中执行Platform.exit,但没有运气。首先,在关闭浏览器时,不会调用任何处理程序setOnHiding和setOnCloseRequest。同时设置Platform.setImplicitExit(true)不会导致java进程在浏览器关闭时终止 - 这仅在有时才有效。在Web浏览器关闭后,Sth阻止javafx进程被终止。我怎样才能检测到什么?如何在浏览器退出时终止javafx应用程序

+0

您是否在应用程序中创建其他线程?如果是这样,他们是如何创建的?您的应用程序退出方法是否被调用? – jewelsea

+0

jewelsea,确实有3个线程由我创建,但他们是deamons,所以我认为他们不应该阻止应用程序退出。我调用Platform.exit()方法,但只有如果我单击注销按钮,然后用户从服务器中退出,然后它确定。 **当所有窗口关闭时,JavaFX应该退出,问题在于,当执行嵌入在浏览器中的应用程序时,上述内容似乎不适用,只有在javaFX应用程序作为独立运行而不是在浏览器中运行时,才会调用setOnCloseRequest的处理程序。 **我认为相同的aplies to setImplicitExit(true) – voytech

+0

原始问题的最后两句是没有意义的。 – jewelsea

回答

0

对我来说,浏览器关闭时,浏览器中托管的JavaFX应用程序总是会自动终止。

您应该执行Application.stop()来检测应用程序关闭事件。

阶段级别的方法setOnCloseRequest和setOnHiding不是检测应用程序级别关闭事件的正确方法。

+0

好的,谢谢你,看来你给了我解决方案。我没有实施停止方法。就这样。 – voytech

相关问题