关于CountDownTimer倒计时的一个小坑

在新的项目的欢迎页写了一个倒计时的秒数,使用了CountDownTimer这个android自带的倒计时工具,最开始按照一般的设置方式,

CountDownTimer countDownTimer=new CountDownTimer(3000,1000) {

@Override

public void onTick(longl) {

time_tv.setText("跳过"+ l /1000+"s");

}

@Override

public void onFinish() {

startActivity();

}

};

countDownTimer.start();

但是每次在1s的时候停留很久,后来打印发现,在onTick方法里只执行了2秒,等到调用onFinish的时候又停了2秒,但通过日志发现,onTick的l值永远都不是满的,后来查资料发现是说硬件时间不是绝对正确的,所以就会有偏差,根据资料和自己的整理,有了一个解决办法,就是把每次的间隔时间缩小到可以识别的地步.所以修改后就变成

CountDownTimer countDownTimer=new CountDownTimer(3000,500) {

@Override

public voidonTick(longl) {

time_tv.setText("跳过"+ (l /1000+1) +"s");

}

@Override

public voidonFinish() {

startActivity();

}

};

countDownTimer.start(); 

这样就能完美解决了~~~

你可能感兴趣的:(关于CountDownTimer倒计时的一个小坑)