Android Handler实现闪屏页倒计时代码
我就废话不多说了,大家还是直接看代码吧~
packagecom.zjx.todayinfomation; importandroid.os.Handler; publicclassCustomCountDownTimerimplementsRunnable{ //1.实时去回调这个时候是什么时间倒计时到几点观察者设计模式 //2.支持传入总时间动态传入 //3.每过一秒总秒数-1 //4.总时间倒计时为0时候回调完成状态 privateinttime;//总时间 privateintcountDowntime;//倒计时事件 privateIcountDownHandlercountDownHandler;//回调接口 privatefinalHandlerhandler;//handler privatebooleanisRunning;//是否允许 /** *@paramtime传入的总时间 *@paramcountDownHandler接口回调 */ publicCustomCountDownTimer(inttime,IcountDownHandlercountDownHandler){ handler=newHandler(); this.time=time; this.countDowntime=time;//倒计时时间第一次就是总时间 this.countDownHandler=countDownHandler; } @Override publicvoidrun(){ if(isRunning){//如果开启了 if(countDownHandler!=null){//并且回调接口不为空回调当前秒数 countDownHandler.onTicker(countDowntime);//countDowntime第一次进来就是总时间比如5 } //如果当前秒数为0回调完成 if(countDowntime==0){ cancel(); if(countDownHandler!=null){ countDownHandler.onFinish(); } }else{ //如果当前秒数部位0每次减少1秒并且疫苗后重新执行这个run方法 countDowntime=time--;//54321类似 handler.postDelayed(this,1000); } } } /** *开启run方法 */ publicvoidstart(){ isRunning=true; handler.post(this);//调用run方法 } /** *跳出循环终止run方法 */ publicvoidcancel(){ isRunning=false; handler.removeCallbacks(this); } /** *观察者回调接口 */ publicinterfaceIcountDownHandler{ voidonTicker(inttime);//回调事件倒计时 voidonFinish();//回调完成 } }
补充知识:android列表每一个item都加上倒计时
使用recyclerview的问题:当前显示的view如果滑到看不见再滑回来就会重新倒计时
解决方法是换用listview使用viewholder复用原理把倒计时写在第一次加载时候这样就不会出现上述问题
以上这篇AndroidHandler实现闪屏页倒计时代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。