简单小巧倒计时工具类 android

本文介绍了一个简单小巧的Android倒计时工具类,该工具类可以有效避免倒计时出现-1秒或0秒显示的情况,并在倒计时结束后自动触发指定的操作。通过示例代码展示了如何使用此工具类实现广告倒计时功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

借鉴前人经验的基础上改动

改动内容:

  1. 防止出现-1秒显示的情况
  2. 防止出现 0秒显示的情况.在0秒直接自动跳转

参考博客地址:
https://blog.youkuaiyun.com/z82367825/article/details/47167747

废话不多说了,先上效果图

动态广告跳转

看到这里说明有点用,给你个代码

// An highlighted block
public class TimeUtil {
//倒计时功能
public interface ITimer {
        public void onCompelete();

        public void onPerSecond(int time);
    }

    Timer timer;
    private ITimer ITimer;
    private int time;

    public TimeUtil(ITimer ITimer, int time) {
        this.ITimer = ITimer;
        this.time = time;
    }

    public void start() {
        if (timer == null) {
            timer = new Timer();
            timer.schedule(timerTask, 0, 1000);
        }
    }

    public void stop() {
        if (timer != null) {
            timer.cancel();
            timer = null;
        }
    }

    TimerTask timerTask = new TimerTask() {
        @Override
        public void run() {
        //此处改动2
            if (time == 0) {
                handler.sendEmptyMessage(0x02);
            } else {
                handler.sendEmptyMessage(0x01);
            }
        }
    };

    Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            switch (msg.what) {
                case 0x01:
                //此处改动1 
                    ITimer.onPerSecond(time);
                    --time;
                    break;
                case 0x02:
                    ITimer.onCompelete();
                    break;
            }
        }
    };
}
    

工具类使用示例

        tvLeftSecond.setText("广告剩余" + countDownSeconds + "秒");
        timeUtil = new TimeUtil(new TimeUtil.ITimer() {
            @Override
            public void onCompelete() {
                //计时结束
                 timeUtil.stop();
            }

            @Override
            public void onPerSecond(int time) {
                //每过一秒,方法调用一次
                tvLeftSecond.setText("广告剩余" + time + "秒");
            }
        }, countDownSeconds);
        timeUtil.start();

感觉有用,顺手点个赞,收藏一下,有备无患

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值