简单小巧倒计时工具类 android

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wfs31415926/article/details/82755269

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

改动内容:

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

参考博客地址:
https://blog.csdn.net/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();

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

猜你喜欢

转载自blog.csdn.net/wfs31415926/article/details/82755269
今日推荐