在新的项目的欢迎页写了一个倒计时的秒数,使用了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();
这样就能完美解决了~~~
网友评论