android 倒计时CountDownTimer类的使用总结

一、概述

项目中经常用到倒计时的功能:手机获取验证码。google官方也帮我们封装好了一个类:CountDownTimer,使我们的开发更加方便;

二、API

CountDownTimer是一个抽象类,有两个抽象方法,

1、public abstract void onTick(long millisUntilFinished);//这个是每次间隔指定时间的回调,millisUntilFinished:剩余的时间,单位毫秒

2、public abstract void onFinish();//这个是倒计时结束的回调

使用的时候只需要

new CountDownTimer(long millisInFuture, long countDownInterval)

//millisInFuture:倒计时的总时长

//countDownInterval:每次的间隔时间  单位都是毫秒

三、基本使用方法

我们以短信验证码的倒计时来看,点击获取验证码,倒计时60s不可点击

点击按钮,获取验证码成功之后就可以执行以上操作,最后一定要start,不然不会执行

以按钮为例实现手机获取验证码举例:

xml文件设置一个布局RelativeLayout

android:layout_width="match_parent"

android:layout_height="wrap_parent"

android:layout_marginTop="20dp"

android:layout_toLeftOf="@+id/btn" />

android:id="@+id/btn"

android:layout_width="100dp"

android:layout_height="wrap_parent"

android:layout_marginTop="20dp"

android:layout_alignParentRight="true"

android:text="获取验证码" />

.java文件

public  class  MainActivity extends Activity{

    private Button mButtonClick;

    private TimerCount mTimerCount;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);

             setContentView(R.layout.activity_main);

            mButtonClick = (Button ) findViewById(R.id.btn);

            mTimerCount = new  TimerCount (60 * 1000 , 1000);

            mButtonClick .setOnClickListener(new View.OnClickListener() {

                @Override

                    public void onClick(View view) {

                        mTimerCount.start();

                    }

            });               

    }

class  TimerCount  extends  CountDownTimer(){ //抽象类

//构造方法

        public  TimerCount (long totalTime, long interval){

                super(totalTime,interval);

           }

        @Override //覆写方法 - 结束方法

       public void onFinish() {

        mButtonClick .setEnable(true);

           mButtonClick .setText("重新获取");

        }

        @Override    //覆写方法 - 计时方法

        public void onTick(long millisUntilFinished) {

        mButtonClick .setEnable(false);

        mButtonClick .setText(millisUntilFinished / 1000 + "秒");

        }

    }

}

你可能感兴趣的:(android 倒计时CountDownTimer类的使用总结)