我有一个场景,我必须每 10 秒刷新一次 GWT 网格才能更新该网格上项目的状态。这是逻辑:
Timer timer = new Timer(){
@Override
public void run(){
//make server call to update grid
}
};
timer.scheduleRepeating(10000);
我的问题是这样的:当这个网格处于 View 中时,即当演示者被调用时,计时器开始启动,但没有办法停止计时器。导航到不同的 View 不会阻止计时器每 10 秒调用一次服务器。有没有办法在用户导航到另一个 View 时立即停止计时器?应用程序需要不断更新状态,因此必须在网格不再处于 View 中时取消它。
最佳答案
在包含计时器的 Widget 或 Composite( View )中添加:
@Override
protected void onUnload() {
timer.cancel();
}
This method is called immediately before a widget will be detached from the browser's document.
关于java - 取消 GWT 重复计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51059035/