Android:CountDownTimer 实现倒计时功能

Android:CountDownTimer 实现倒计时

标签(空格分隔): Android,CountDown,CountDownTimer


Step00. 官方

CountDownTimer:定时执行在一段倒计时,在倒计时执行过程中会在固定间隔时间得到具体的通知。
官方文档:https://developer.android.com/reference/android/os/CountDownTimer.html
中文翻译:http://www.cnblogs.com/over140/archive/2011/12/20/2294220.html

Step01.简单的使用

使用:我们设置一个 30 秒的倒计时,在一个 textview 中显示具体剩余时间。当执行结束时。显示“完成”。

CountDownTimer countDownTimer = new CountDownTimer(30*1000, 1000) {
     public void onTick(long millisUntilFinished) {
        mTextField.setText("剩余时间: " + millisUntilFinished / 1000 + "秒");
     }

     public void onFinish() {
         mTextField.setText("完成!");
     }
  }

执行: countDownTimer.start();
取消: countDownTimer.cancel();
当执行取消后(cancel),再次启动(start)会重新开始倒计时。而不是上次取消时的剩余时间。

Step02. 暂停(Pause)

首先是需要重写初始化

//millisInFuture 倒计时时长单位毫秒
public void initCountDownTimer(long millisInFuture) {
    mCountDownTimer = new CountDownTimer(millisInFuture, 1000) {
        @Override
        public void onTick(long millisUntilFinished) {
            curTime = millisUntilFinished;//当前剩余时间;
            mTimerTv.setText(TimeTools.getCountTimeByLong(millisUntilFinished));
        }

        public void onFinish() {
            mTimerTv.setText("完成!");
        }
    };
}

暂停或者是继续播放

//isPause 暂停标记,默认为false.
if (!isPause) {
    isPause = true;
    mCountDownTimer.cancel();
} else {//继续播放
    if (curTime != 0) {
        //将上次当前剩余时间作为新的时长
        initCountDownTimer(curTime);
        mCountDownTimer.start();
        isPause = false;
    }
}

step03.源码

Github Code

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容