每次连续调用这个`timerMethod`,timerInt的值比以前增加得更快

时间:2012-06-19 11:17:37

标签: java android timer timertask

我正在开发一个应用程序,它可以通过事件重新启动。在第一次运行时,计时器工作正常(1秒= 1增量)。但是,在第三次运行(1秒= 4增量)的下一次运行(1秒= 2增量),依此类推...... 我认为正在创建的新TimerTask对象有问题。但是,不知道如何处理它。任何建议或替代?

CODE SNIPPET

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);

    }

2 个答案:

答案 0 :(得分:2)

听起来好像你多次打电话给timerMethod()

当你调用它三次时,你已经安排了三个计时器任务 - 所以它们都会每秒触发,并且所有增量timerInt。您可能需要多次调用它,或者在添加更多内容之前取消现有的计时器任务。

如果,请提供一个简短但完整的程序来显示正在发生的事情。目前的背景相当模糊。

答案 1 :(得分:0)

您提供的代码段正常运作

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

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