博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Android提供的CountDownTimer类实现短信验证码倒计时
阅读量:5735 次
发布时间:2019-06-18

本文共 2181 字,大约阅读时间需要 7 分钟。

android.os.CountDownTimer

public abstract class CountDownTimer {

/** * Millis since epoch when alarm should stop:定时时间 */private final long mMillisInFuture;/** * The interval in millis that the user receives callbacks:回调间隔时间 */private final long mCountdownInterval; public CountDownTimer(long millisInFuture, long countDownInterval) {    mMillisInFuture = millisInFuture;    mCountdownInterval = countDownInterval;}

具体代码:

public class MainActivity extends AppCompatActivity {

private TimeCount timeCount;private Button button;@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    button = (Button) findViewById(R.id.btn);    timeCount = new TimeCount(11000,1000);    timeCount.setCountListener(new TimeCount.CountListener() {        @Override        public void onTick(Long time) {            button.setText(String.valueOf(time/1000).concat("s"));            button.setEnabled(false);//设置不可点击        }        @Override        public void onFinish() {            button.setText("重新发送");            button.setEnabled(true);        }    });}public void click(View view){    Toast.makeText(MainActivity.this,"click",Toast.LENGTH_SHORT).show();    timeCount.start();}

}

class TimeCount extends CountDownTimer {

private CountListener countListener;  /**   * @param millisInFuture    The number of millis in the future from the call   *                          to {@link #start()} until the countdown is done and {@link #onFinish()}   *                          is called.   * @param countDownInterval The interval along the way to receive   *                          {@link #onTick(long)} callbacks.   */  public TimeCount(long millisInFuture, long countDownInterval) {      super(millisInFuture, countDownInterval);  }  @Override  public void onTick(long millisUntilFinished) {      countListener.onTick(millisUntilFinished);  }  @Override  public void onFinish() {      countListener.onFinish();  }public void setCountListener(CountListener countListener){    this.countListener = countListener;}public interface CountListener{    public void onTick(Long time);    public void onFinish();}

}

clipboard.png

clipboard.png

clipboard.png

转载地址:http://czwzx.baihongyu.com/

你可能感兴趣的文章
ACM进阶计划
查看>>
配置resin支持maven项目
查看>>
紫书p199 八数码(BFS,hash)
查看>>
技术债务管理以及Firefox/Chromium的债务评价
查看>>
java web 站点头像上传处理 (springmvc +bootstrap+cropper)
查看>>
Amazon DynamoDB, 面向互联网应用的高性能、可扩展的NoSQL数据库
查看>>
【Unity笔记】Terrain地形制作坍塌/深坑
查看>>
大型网站架构系列:电商网站架构案例(2)
查看>>
AsyncTask工作机制简介
查看>>
[Asp.net]SignalR实现实时日志监控
查看>>
【js】js中const,var,let区别
查看>>
【Java学习笔记之三十三】详解Java中try,catch,finally的用法及分析
查看>>
rfcn结构
查看>>
一脸懵逼学习Hdfs---动态增加节点和副本数量管理(Hdfs动态扩容)
查看>>
使用 Skeleton Screen 提升用户感知体验
查看>>
简易RPC框架-熔断降级机制
查看>>
下拉菜单:可高速定义一二级菜单颜色
查看>>
【BIEE】06_UNION /UNION ALL集合中分类汇总求和占比字段特殊处理
查看>>
ConcurrentLinkedQueue代码解析
查看>>
《android开发艺术探索》读书笔记(十三)--综合技术
查看>>