倒计时秒数 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
增加值.
希望对您有所帮助!
我的倒数计时器以 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
增加值.
希望对您有所帮助!