首页 新闻 会员 周边

android开发,CountDownTimer实现倒计时

0
悬赏园豆:10 [已解决问题] 解决于 2013-12-12 21:31

      android开发,通过CountDownTimer来实现倒计时,很容易实现,但是现在存在问题,比如我设置倒计时的时长是5秒,当减为0时执行我设定的操作。但是onTick过程中时间会变大,我设置的总时间为5秒,递减过程中会变成几百秒,几十秒,在onTick中添加打印,发现millisUntilFinished变为很大的值,比我设定的时长还要大很多。因为是做机顶盒开发,所以系统时间是从节目流中获取的,问一下是不是因为这个的影响导致的???谢谢

往生草的主页 往生草 | 初学一级 | 园豆:172
提问于:2013-06-17 17:41
< >
分享
最佳答案
0

在原生的系统中测试过这一块,没有发现楼主描述的问题。请问是不是机顶盒的接口跟原生系统的接口变化很大呢?

收获园豆:10
fsgewrtge | 菜鸟二级 |园豆:248 | 2013-06-17 23:02

     嗯,主要用到的就是CountDownTimer这个类,我看了一下,该类会通过SystemClock.elapsedRealtime()该方法来判断,SystemClock.elapsedRealtime()是获取设备启动到现在的毫秒数,通过打印,发现出现倒计时值变大的情况下该值总是突然变小,正常情况下应该是断变大,所以问题就出在这里,但是这些都是系统类,所以应该是由于节目流中的时间对系统时间做了更改导致获取的时间值错乱然后产生的问题。

往生草 | 园豆:172 (初学一级) | 2013-06-18 13:55

@往生草: 如果情况真如你所说的话,那着应该属于系统Api的Bug了吧?

fsgewrtge | 园豆:248 (菜鸟二级) | 2013-06-18 14:58

@肥肥鱼: 嗯 估计是这样的,如果我播的一个节目是直播流,就没有问题。如果播的节目流是之前录制的节目,就会出现问题。所以SystemClock.elapsedRealtime()应该与系统时间有关系。

往生草 | 园豆:172 (初学一级) | 2013-06-18 19:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册