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

<EditText

android:layout_width="match_parent"

android:layout_height="wrap_parent"

android:layout_marginTop="20dp"

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

<Button

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 + "秒");

        }

    }

}

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

友情链接更多精彩内容