如何在 Vaadin 中检测浏览器的选项卡或窗口何时关闭?
我的情况是,当用户进入或退出浏览器中的 View 时,我有一个后台线程启动和停止。该线程根据导航器的更改监听器的 beforeViewChange 和 afterViewChange 事件启动或停止。当我在应用程序中的 View 之间切换时,这一切正常。
我的问题是,如果带有后台线程的 View 处于事件状态并且用户关闭了浏览器选项卡或窗口,我不知道如何检测此关闭以便停止我的后台线程。目前,如果我关闭浏览器,后端线程将继续在服务器上运行。
最佳答案
您可以将 DetachListener 添加到您的 UI 中。当服务器错过来自客户端的三个连续心跳信号时,发送 DetachEvent。
addDetachListener(new DetachListener() {
@Override
public void detach(DetachEvent event) {
... closeBackgroundThread()
}
});
见 https://vaadin.com/docs/-/part/framework/application/application-lifecycle.html有关 UI 过期的详细信息。
关于vaadin - 检测浏览器在 Vaadin 应用程序中关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39170042/