Vaadin Flow:删除 PollListener

Wul*_*ulf 2 polling vaadin vaadin-flow

PollListenerVaadin 14 中是否有可能删除 a ?

UI.getCurrent().addPollListener(pollEvent -> { refresh(); }
Run Code Online (Sandbox Code Playgroud)

我需要开始刷新,但如果路由或 UI 发生更改,刷新必须停止。

是否有“Vaadin 可能性”,或者我必须自己构建一些东西?

谢谢你!

Tar*_*aby 5

如文档中所述,为了禁用轮询,应该调用

UI.getCurrent().setPollInterval(-1);
Run Code Online (Sandbox Code Playgroud)

为了确保在离开视图时调用此方法,您可以在 BeforeLeaveObserver 中进行此调用。这是一个例子:

public class Foo extends Div
        implements BeforeLeaveObserver {
    @Override
    public void beforeLeave(BeforeLeaveEvent event) {
        UI.getCurrent().setPollInterval(-1);
    }

}
Run Code Online (Sandbox Code Playgroud)

如果要在保持轮询启用的情况下删除单个轮询侦听器,您可以存储对该方法Registration返回的对象的引用addPollListener(),然后removeRegistration.

  • 值得注意的是`addPollListener`返回一个`Registration`,你可以调用`Registration#remove`来删除它。如果您想在不禁用轮询的情况下删除侦听器,这非常有用。 (6认同)