Vaadin UI分离异常
我正在使用Vaadin 7.7.10,在使用后台Vaadin UI分离异常,vaadin,Vaadin,我正在使用Vaadin 7.7.10,在使用后台线程和@Push注释时,我在日志中看到许多UIDetachedException 请建议如何正确释放资源以清理我的日志。这是因为用户关闭了浏览器窗口或选项卡,这意味着特定的UI实例不再使用 最好的方法通常是覆盖应用程序UI子类中的detach方法并在那里进行清理。只需记住还要调用super.detach() 另一种方法是捕获UI.access可能引发的uidetachedeexception,并在该点执行清理。这种方法的缺点是,当用户界面分离时,您
线程和@Push
注释时,我在日志中看到许多UIDetachedException
请建议如何正确释放资源以清理我的日志。这是因为用户关闭了浏览器窗口或选项卡,这意味着特定的UI实例不再使用
最好的方法通常是覆盖应用程序UI子类中的detach
方法并在那里进行清理。只需记住还要调用super.detach()
另一种方法是捕获UI.access可能引发的uidetachedeexception
,并在该点执行清理。这种方法的缺点是,当用户界面分离时,您不会立即收到通知,而只有在尝试对其进行操作时才会收到通知。如果您在UI中进行操作。访问(…)
已分离的UI
,您将触发UIDetachedException
。这是很自然的,例如用户关闭了浏览器,或者网络中有东西关闭了连接,因此UI
被分离。如果在您的案例中,由于这些原因发生了UIDetachedException
,那么它是无害的。在这种情况下,您可以通过检查UI.isAttached()
避免乱扔日志,如果UI
已分离,则返回false
;如果UI
已放入清理队列,则返回UI.isClosing()
。请显示一些与此相关的代码。你确定它们是一个问题,不仅仅是用户留下的会话吗?这里建议的方法有一个小问题。在运行UI.isAttached()
和UI.access(handler)
时,UI很可能会分离。您仍然可以排除大多数异常,但不是所有异常。这是正确的。但是,我在现实生活中没有看到这种情况。是否也可以通过重写com.vaadin.flow.Component.Component#ondeach
在组件
子类中执行清理?