资讯专栏INFORMATION COLUMN

使用Android提供的CountDownTimer类实现短信验证码倒计时

Olivia / 3041人阅读

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;

@Override
protected 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();
}

}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/13383.html

相关文章

  • Android使用CountDownTimer实现验证计时

    摘要:在使用短信验证码注册或者登录就可以看到这样的设计点击发送验证码的按钮之后,按钮上就会出现倒计时一般为秒,倒计时结束之后,按钮的文字就会变成重新发送。 等待总是让人感到焦急和厌烦的,特别是看不到进展的等待。所以为了不让用户痴痴地等,我们在进行某些耗时操作时,一般都要设计一个进度条或者倒计时器,让进度可视化,告诉用户等待之后更精彩。在使用短信验证码注册或者登录App就可以看到这样的设计:点...

    focusj 评论0 收藏0
  • 用Service+Broadcast解决计时过程中Activity被销毁问题

    摘要:主要思想是这样的将倒计时放在里面进行,每过一秒就一条发广播,在主里注册广播,收到广播后更新。二在主中注册广播,接收广播,更新注册广播广播接收者正在倒计时倒计时中倒计时中完成倒计时注册广播移除注册最后补上例子的源代码跨的倒计时源代码主要思想是这样的:将倒计时CountDownTimer放在Service里面进行,每过一秒就一条发广播,在主Activity里注册广播,收到广播后更新UI。 一、写...

    OldPanda 评论0 收藏0
  • 聚合数据短信验证接口实现 Android开发短信验证

    在说Android中的短信验证码这个知识点前,我们首先来了解下聚合数据 聚合数据介绍聚合数据是一家国内最大的基础数据API提供商,专业从事互联网数据服务。免费提供从天气查询、空气质量、地图坐标到金融基金、电商比价、违章查询等各个领域的安全、稳定和高效的数据。开发者可以免费试用聚合数据API进行移动APP的快速开发,免除数据收集、维护等环节,大大降低开发周期及成本。因此我们可以采用聚合数据给我提供好...

    Codeing_ls 评论0 收藏0
  • 练习demo - 收藏集 - 掘金

    摘要:同时我们或许还会有这样的体验打开联系人界面,手指向上滑动,联系人列表也会跟着一动态权限申请步骤以及需要注意的一些坑掘金因为工作需要,简单研究了一下权限申请,在提供的的基础上,写了一个简单的。 自定义未读消息红点提示 - Android - 掘金未读消息提示,可自定义颜色及Padding 效果展示... Android 实现底部对话框 - Android - 掘金最近项目上需要实现一个底...

    jerryloveemily 评论0 收藏0
  • Android开发之短信验证示例

    在说Android中的短信验证码这个知识点前,我们首先来了解下聚合数据 聚合数据介绍 聚合数据是一家国内最大的基础数据API提供商,专业从事互联网数据服务。免费提供从天气查询、空气质量、地图坐标到金融基金、电商比价、违章查询等各个领域的安全、稳定和高效的数据。开发者可以免费试用聚合数据API进行移动APP的快速开发,免除数据收集、维护等环节,大大降低开发周期及成本。因此我们可以采用聚合数据给我提供...

    jeyhan 评论0 收藏0

发表评论

0条评论

Olivia

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<