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

更多相关文章

  1. 修改官方Twitter For Android,自定义 API
  2. Android官方入门文档[6]添加Action按钮
  3. 跟着Android官方培训课程学习,挖坑填坑记录
  4. Android官方ORM数据库Room技术解决方案简介(一)
  5. Android官方设计常用icon以及color颜色RGB值和对应颜色效果图
  6. 基于Android官方DrawerLayout实现抽屉导航菜单
  7. Android简单的下拉刷新(谷歌官方)
  8. [Android官方开发者博客.翻译]Android的HTTP客户端
  9. Google I/O Android官方新体系架构之:Lifecycle

随机推荐

  1. Android(安卓)调用原生系统的拍照,录音,录
  2. android中处理各种触摸事件的方法浅谈
  3. Android(安卓)解决OOM
  4. android 推送
  5. Android(安卓)实现点击按钮获取验证码 60
  6. ListView滚动黑屏问题
  7. Android(安卓)链接https出现 javax.net.s
  8. Android采用Fragment+ViewPager+动画实现
  9. Error:(16, 0) Gradle DSL method not fo
  10. android 获取IP地址