A.本次使用三种方式进行倒计时测试,分别是:
1.安卓自带SDK倒计时CountDownTimer
2.协程GlobalScope
3.Rxjava
B.测试结果
1.CountDownTimer和GlobalScope都会因为手机性能问题(比如手机发热严重)出现一定程度的时间变长,比如本来是1秒的倒计时,可能变成1.1秒,就会导致整个倒计时时间变长
2.Rxjava实现的倒计时比较准确,没有出现大范围的波动,相对其他2种方案,Rxjava的倒计时无疑是最优的倒计时解决方案
C.话不多说,直接上图看结果(主要看红线间的误差)
CountDownTimer.gif
协程.gif
rxjava.gif
三张图从上到下依次是CountDownTimer、协程和Rxjava实现的倒计时效果,有兴趣的可以去看一下Rxjava内部的实现逻辑
后记:2020年8月3日09:21:21
使用Rxjava倒计时依然有坑,当页面进入锁屏模式或者退到后台的情况下。如果插着数据线打印着log没有任何问题,但是没有数据线插着就会出现倒计时比现实时间慢的情况,所以即便使用Rxjava,依然需要对页面onPause和OnResume进行时间的处理,才能准确纠正倒计时带来的误差









网友评论