倒计时秒数 android 不准确

Seconds on Countdown timer android not accurate

我的倒数计时器以 HH:mm:ss 格式计算 end_time 和 current_time 之间的差异。我注意到每当计时器开始显示时,秒数总是四舍五入,这意味着它总是会从 HH:59 开始倒计时。有没有办法让秒数准确显示正确的剩余秒数?

您可以为此创建自定义 CountDownTimer。比如说:

    public class MyCountDownTimer extends CountDownTimer {
  public MyCountDownTimer(long millisInFuture, long interval) {
  super(millisInFuture, interval);
  }

  @Override
  public void onFinish() {
    my_textview.setText("Time's up!");     
  }

  @Override
  public void onTick(long millisUntilFinished) {
    my_textview.setText("" + millisUntilFinished / 1000);   //Shows no. of seconds left
    //Uses a textview to update status                                                        
  }
}

在您的 Activity 中,您可以将计时器称为:

    CountDownTimer countDownTimer = new MyCountDownTimer(millisInFuture, interval);
//In this case
//CountDownTimer countDownTimer = new MyCountDownTimer(50000, 1000); 

这里 millisInFuture 是 "time left for your particular time interval" 启动计时器时的毫秒数。在这种情况下,假设剩余时间为 50 秒。那么这个值将是 50000

interval 是您要提供更新的时间(以毫秒为单位)。 (即,如果您使用 1000 作为间隔,计时器将每 1 秒更新一次)

所以在这种情况下,

onTick(long millisUntilFinished) 

每隔一秒调用一次,这让您有时间为 milliseconds.i.e 中的倒数计时器留出时间。 millisUntilFinished 参数在第一次调用时为您提供 49000(即还剩 49 秒)等等。

当计时器完成倒计时时,将调用 onfinish()。

您可以以任何方式显示此信息。我只是在 TextView 中显示了它。

留给您的唯一步骤就是实际启动倒数计时器。 countDownTimer.start();

并且由于您不想从 开始,比如 59,您可以在每次设置文本时使用 one 增加值.

希望对您有所帮助!