我正在开发一个应用程序,该应用程序会通过事件重新启动。在第一次运行时,计时器运行完美(1秒= 1增量)。但是,在下一次运行(1秒= 2增量)在下一次运行(1秒= 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);

    }

最佳答案

听起来您要多次拨打timerMethod()

调用三次后,您将安排三个计时器任务-因此它们将每秒触发一次,并且全部递增timerInt。您无需多次调用它,或在添加更多定时器之前取消现有的计时器任务。

如果不是这种情况,请提供简短但完整的程序以显示正在发生的事情。目前的情况还很模糊。

10-05 17:46