关于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(); 

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容