Android倒计时计时器在前一个值和当前值之间保持迭代

时间:2016-12-05 18:34:43

标签: android time timer countdowntimer

您好我正在使用倒数计时器处理应用。单击该按钮时,计时器将根据用户对文本字段的输入启动,当我更改文本字段的值并启动计时器的新值时,它会闪烁并显示上一个倒计时值并将这两个值计数,在前一个倒计时值和当前倒计时值之间闪烁。如何让计时器忘记之前的值并仅使用当前计时器值。

我尝试使用取消功能但是没有工作,我认为这是我的刻录功能中的一些东西,但我不确定它是什么。

这是我的代码:

   CountDownTimer mcountDownTimer = new CountDownTimer(getmonTime(), 1000) {          // adjust the milli seconds here

                public void onTick(long millisUntilFinished) {

                    long hr1=TimeUnit.MILLISECONDS.toHours( millisUntilFinished);
                    long sub1=hr1*60;
                    long min1=TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished);
                    long sub2=min1*60;


                    timer.setText(""+String.format("%d hr,%d min, %d sec",
                            TimeUnit.MILLISECONDS.toHours( millisUntilFinished),

                            TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished)-sub1,
                            TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished)-sub2,
                                    -
                                    TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))));

                }


                public void onFinish() {

                    timer.setText("0");
                }



            };

                    mcountDownTimer.start();






        }


    };

1 个答案:

答案 0 :(得分:0)

您可能不会取消之前的那个。

保存CountDownTimer mcountDownTimer的实例(BTW将其重命名为mCountDownTimer) 在设置新的之前,请使用以下命令取消旧的: mCountDownTimer.cancel(); 然后才创建新实例。 E.g:

CountDownTimer mCountDownTimer;

@Override
public void onCreate...
...

if (mCountDownTimer != null) mCountDownTimer.cancel();
mCountDownTimer = new CountDownTimer...