Android-倒计时工具类

来源:互联网 发布:开放式耳机隔音 知乎 编辑:程序博客网 时间:2024/05/16 15:41

在Android开发中,经常需要到一些倒计时操作,举一个例子,一些app发送短信验证码的倒计时30秒之后可以再次发送,再或者,每相隔多少秒,执行什么操作。

由于可能会频繁使用到这类操作,为了提高代码的复用率,把倒计时的功能封装成了一个工具类,代码比较简单:

       

代码实现:


/** * Created by Zero on 2015/7/21. */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() {            handler.sendEmptyMessage(0x01);            if(time==0){                handler.sendEmptyMessage(0x02);            }        }    };    Handler handler = new Handler(){        @Override        public void handleMessage(Message msg) {            switch (msg.what){                case 0x01:                    time--;                    ITimer.onPerSecond(time);                    break;                case 0x02:                    ITimer.onCompelete();                    break;            }        }    };}


下面看使用的方法,这里以倒计时60秒为例:

timeUtil = new TimeUtil(new TimeUtil.ITimer() {            @Override            public void onCompelete() {                //计时结束            }            @Override            public void onPerSecond(int time) {                //每过一秒,方法调用一次            }        }, 60);




0 0