0

我正在开发一个应用程序,它会通过事件重新启动。在第一次运行时,计时器完美运行(1 秒 = 1 增量)。但是,在下一次运行(1sec = 2 增量)第三次运行(1sec = 4 增量)等等...我认为正在创建的新 TimerTask 对象有问题。但是,不知道如何处理。有什么建议或替代方案吗?

代码片段:

Timer t = new Timer();

void timerMethod()
    {
      t.schedule(new TimerTask() {
      public void run() {
                timerInt++;
                //TODO bug in timer in consecutive runs. To confirm, see log
                Log.d("timer", "timer " + timerInt);
                /*  runOnUiThread(new Runnable() {

                    @Override
                    public void run() {
                        timerDisplayPanel.setText( timerInt + " Sec");
                    }
                });*/
            }
        }, 1000, 1000);

    }
4

2 回答 2

2

听起来你打timerMethod()了很多次电话。

当您调用它 3 次时,您已经安排了三个计时器任务 - 所以它们都会每秒触发一次,并且都会递增timerInt。您要么不需要多次调用它,要么在添加更多之前取消现有的计时器任务。

如果不是这样,请提供一个简短但完整的程序来显示正在发生的事情。目前上下文相当模糊。

于 2012-06-19T11:19:04.640 回答
0

您提供的代码段工作正常

  • 1 秒 1 增量
  • 2 秒 2 增量
  • 3 秒 3 增量

ETC

所以问题可能出在代码的其他地方。

于 2012-06-19T11:30:54.170 回答