android 倒计时 小结:
android倒计时常用几种方法如下:
1、自定义倒计时控件
2、android系统控件countDownTimer
3、Timer和Handler共同操作完成
4、直接使用Handler操作
在使用前两种方法过程中,我是利用TimerAdapter显示很多倒计时TextView。首先出现的问题是倒计时不跳变,发现有2个原因,第一没有刷新listview,第二在oncreate方法中多调用了initDate()方法,这样数据一直是旧数据。解决完这个问题后,又面临一个新的问题,第一个倒计时TextView跳变秒数不对。
直到我将holer.tvTimer取值放在if(holer == null){...}里才解决这个问题。简单分析,估计是view从缓存中取时,其值已经由线程发生改变,然而在if(holer == null){...}外又改变了一次,所以秒数发生改变(假如不再if(holer == null){...}外头从新取值,对于很多情况,listview中显示的以前的值)。
解决完秒数跳变不正确显示以后,当显示倒计时个数增加后,又发现一个新的问题。有几个倒计时秒数跳变延迟。发现是由于每一个倒计时新new了一个定时器。这不仅增加系统开销,一旦数量变多时,跳变秒数显示效果不正确,严重的话甚至导致系统蹦了的情况。
最终利用第4种方法解决了上述问题。
以上是写给自己看的,请大家多多指教