如何永久停止计时器并清除计时器中的旧数据?

时间:2015-11-09 09:20:11

标签: java gwt timer

我正在使用以下循环来处理时间:

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中的计时器中删除队列(旧)数据?

0 个答案:

没有答案