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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。