验证码倒计时

public void onCodeClick() {
    final long count = 60; // 设置60秒    
    Observable.interval(0, 1, TimeUnit.SECONDS)            
    .take(count + 1)            
    .map(new Function<Long, Long>() {                
         @Override                
         public Long apply(@NonNull Long aLong) throws Exception {
             return count - aLong; // 由于是倒计时,需要将倒计时的数字反过来    
         }            
     })            
     .observeOn(AndroidSchedulers.mainThread())            
     .doOnSubscribe(new Consumer<Disposable>() {         
          @Override                
          public void accept(@NonNull Disposable disposable) throws Exception {         
              button.setEnabled(false);                    
              button.setTextColor(Color.GRAY);               
          }            
      })            
      .subscribe(new Observer<Long>() {           
           @Override                
           public void onSubscribe(Disposable d) {                
           }                
           @Override                
           public void onNext(Long aLong) {                    
               button.setText(aLong + "秒后重发");                
           }                
           @Override                
           public void onError(Throwable e) {                
           }                
           @Override                
           public void onComplete() {                    
               button.setEnabled(true);                    
               button.setTextColor(Color.RED);                    
               button.setText("发送验证码");                
           }            
       });
 }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值