我正在使用以下循环来处理时间:
Timer innerTimer = new Timer() {
@Override
public void run() {
for(final Rectangle rectangle : rectangles) {
if(stopTimer) {
this.cancel();
break;
}
xmassContext = xmassCanvas.getContext2d();
xmassContext.beginPath();
xmassContext.clearRect(rectangle.getXMin(), rectangle.getYMin(), rectangle.getWidth(), rectangle.getHeight());
xmassContext.setFillStyle(controlColor.get(rectangles.indexOf(rectangle)));
xmassContext.setGlobalAlpha(brightness.get(rectangles.indexOf(rectangle))/100);
xmassContext.rect(rectangle.getXMin(), rectangle.getYMin(), rectangle.getWidth(), rectangle.getHeight());
xmassContext.fill();
}
}
};
innerTimer.schedule(tmptimerDuration);
tmptimerDuration = tmptimerDuration + frameDurationTime;
if(stopTimer) innerTimer.cancel();
在上面的代码中,stopTimer
是一个全局静态变量。当我想要停止计时器然后我设置stopTimer = true;
并且为了下一次执行我设置stopTimer = false;
设置timer = true
计时器后将停止。但是对于下一次执行,它将存储旧数据,以便下次计时器将从旧数据开始。如何从GWT中的计时器中删除队列(旧)数据?