我有一个场景,我必须每10秒刷新GWT网格以更新该网格上项目的状态。这是逻辑:
Timer timer = new Timer(){
@Override
public void run(){
//make server call to update grid
}
};
timer.scheduleRepeating(10000);
我的问题是:当查看此网格时,即调用演示者时,计时器开始启动,但是没有办法停止计时器。导航到其他视图并不会阻止计时器每10秒发出一次服务器调用。用户一旦导航到另一个视图,是否可以停止计时器?应用程序需要不断更新状态,因此必须在网格不再可见时取消它。
答案 0 :(得分:0)
在包含计时器的Widget或Composite(视图)中添加:
@Override
protected void onUnload() {
timer.cancel();
}
在将小部件从浏览器的文档中分离之前,立即调用此方法。