android闪屏页倒计时,Android Handler实现闪屏页倒计时代码

Android Handler实现闪屏页倒计时代码

发布时间:2020-10-02 11:01:55

来源:脚本之家

阅读:86

作者:AppWhite_Star

我就废话不多说了,大家还是直接看代码吧~

package com.zjx.todayinfomation;

import android.os.Handler;

public class CustomCountDownTimer implements Runnable{

// 1.实时去回调 这个时候是什么时间 倒计时到几点 观察者设计模式

// 2.支持传入总时间 动态传入

// 3.每过一秒 总秒数 -1

// 4.总时间倒计时为0时候 回调完成状态

private int time; // 总时间

private int countDowntime; // 倒计时事件

private IcountDownHandler countDownHandler; // 回调接口

private final Handler handler; // handler

private boolean isRunning; // 是否允许

/**

* @param time 传入的总时间

* @param countDownHandler 接口回调

*/

public CustomCountDownTimer(int time,IcountDownHandler countDownHandler){

handler = new Handler();

this.time = time;

this.countDowntime = time; // 倒计时时间第一次 就是总时间

this.countDownHandler = countDownHandler;

}

@Override

public void run() {

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--; // 5 4 3 2 1 类似

handler.postDelayed(this,1000);

}

}

}

/**

* 开启run方法

*/

public void start(){

isRunning = true;

handler.post(this); // 调用run方法

}

/**

* 跳出循环 终止run方法

*/

public void cancel(){

isRunning = false;

handler.removeCallbacks(this);

}

/**

* 观察者 回调接口

*/

public interface IcountDownHandler{

void onTicker(int time);// 回调事件 倒计时

void onFinish(); // 回调完成

}

}

补充知识:android 列表每一个item都加上倒计时

使用recyclerview的问题:当前显示的view如果滑到看不见再滑回来就会重新倒计时

解决方法是换用listview 使用viewholder复用原理 把倒计时写在第一次加载时候 这样就不会出现上述问题

以上这篇Android Handler实现闪屏页倒计时代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持亿速云。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值