vaadin - 检测浏览器在 Vaadin 应用程序中关闭

标签 vaadin

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

相关文章:

java - 减少 Vaadin Charts 2 中图表内的空白

node.js - npm缺少脚本:检查

java - 有没有办法使用 Vaadin 8 网格在编辑模式下设置网格中的单元格

java - 在 Vaadin 设置属性中动态地将列和行设置为超链接

java - Vaadin 网格标题单元格的描述工具提示

java - 在哪里可以找到 Vaadin 版本 6 文档

java - 瓦尔网格高度太大

java - Vaadin 8.1 RC1 TreeDataProvider、TreeData (getParent)、HierarchicalQuery

java - BeanFieldGroup,在 ComboBox 中绑定(bind) List<String>?

java - Property.ValueChangeListener - 无法解析为变量 (Vaadin)