取消GWT重复计时器

时间:2018-06-27 09:23:09

标签: java gwt timer

我有一个场景,我必须每10秒刷新GWT网格以更新该网格上项目的状态。这是逻辑:

        Timer timer = new Timer(){
            @Override
            public void run(){
               //make server call to update grid
            }
        };

        timer.scheduleRepeating(10000);

我的问题是:当查看此网格时,即调用演示者时,计时器开始启动,但是没有办法停止计时器。导航到其他视图并不会阻止计时器每10秒发出一次服务器调用。用户一旦导航到另一个视图,是否可以停止计时器?应用程序需要不断更新状态,因此必须在网格不再可见时取消它。

1 个答案:

答案 0 :(得分:0)

在包含计时器的Widget或Composite(视图)中添加:

@Override
protected void onUnload() {
    timer.cancel();
}
  

在将小部件从浏览器的文档中分离之前,立即调用此方法。