Android获取验证码后倒计时程序

在开发是经常会遇到获取短信验证码,然后获取验证码后需要等待1分钟倒计时,这是是不能再次发送短信请求的,这是需要一个倒计时程序

这里我封装了一个Util类,希望对开发的小伙伴能有帮助,

public class TimeCountUtil extends CountDownTimer {

private Activity mActivity;

private Button btn;//按钮

// 在这个构造方法里需要传入三个参数,一个是Activity,一个是总的时间millisInFuture,一个是countDownInterval,然后就是你在哪个按钮上做这个是,就把这个按钮传过来就可以了

public TimeCountUtil( Activity mActivity,long millisInFuture, long countDownInterval,Button btn) {

super(millisInFuture, countDownInterval);

this.mActivity = mActivity;

this.btn =btn;

}

@SuppressLint("NewApi")

@Override

public void onTick(long millisUntilFinished) {

btn.setClickable(false);//设置不能点击

btn.setText(millisUntilFinished / 1000 + "秒后可重新发送");//设置倒计时时间

//设置按钮为灰色,这时是不能点击的

btn.setBackground(mActivity.getResources().getDrawable(R.drawable.bg_duck_back));

Spannable span = new SpannableString(btn.getText().toString());//获取按钮的文字

span.setSpan(new ForegroundColorSpan(Color.RED), 0, 2,                              Spannable.SPAN_INCLUSIVE_EXCLUSIVE);//讲倒计时时间显示为红色

btn.setText(span);

}

@SuppressLint("NewApi")

@Override

public void onFinish() {

btn.setText("重新获取验证码");

btn.setClickable(true);//重新获得点击

btn.setBackground(mActivity.getResources().getDrawable(R.drawable.bg_btn_back));//还原背景色

}

}

调用方法

然后在需要用这个的方法里new一个对象,然后调用start();方法就可以啦

CountUtil timeCountUtil
timeCountUtil = new TimeCountUtil(this, 60000, 1000, verficationBtn);

timeCountUtil.start();

// 获取验证码

getVerificationCode(phoneNum);

实现的效果图

是不是很简单,希望可以帮助小伙伴们!

时间: 2024-10-07 09:58:39

Android获取验证码后倒计时程序的相关文章

Jquery插件 防刷新倒计时 “点击获取验证码后60秒内禁止重新获取

Jquery插件实现"点击获取验证码后60秒内禁止重新获取(防刷新)" 效果图: 先到官网(http://plugins.jQuery.com/cookie/)下载cookie插件,放到相应文件夹,代码如下: 1 <style type="text/css"> 2 * {margin: 0; 3 padding: 0; 4 font-family: "Microsoft Yahei"; 5 } 6 .captcha-box { 7 w

android 获取手机的所有程序和widget的包名和启动类名

获取 widget可以 AppWidgetManager 来获取 List<AppWidgetProviderInfo> widget=AppWidgetManager.getInstance(Context(上下文)).getInstalledProviders(); 得到所有AppWidgetProviderInfo for (int i = 0; i < widget.size(); i++) {        AppWidgetProviderInfo info=widget.g

微信小程序【获取验证码】倒计时效果

最近开始接触微信小程序,会记录一些相关的小功能--例如这次是点击[获取验证码]按钮出现的倒计时效果. 原文: http://blog.csdn.net/Wu_shuxuan/article/details/78539075  感谢 .wxml <button class="buttonget" disabled='{{disabled}}' data-id="2" bindtap="getVerificationCode"> {{ti

Android发送验证码的倒计时按钮

1 直接上图 2 原理 原理很简单,就是把相应的倒计时逻辑等封装到一个控件中,并向外部提供接口. 3 代码 import java.util.Timer; import java.util.TimerTask; import android.content.Context; import android.os.Handler; import android.os.Message; import android.util.AttributeSet; import android.view.Layo

Android获取正在运行的程序并kill掉它

获取正在运行的程序并把它加入到一个listview的adapter类面,方法如下: // 正在运行的 public List<Programe> getRunningProcess() { pi = new PackagesInfo(this); am = (ActivityManager) getSystemService(ACTIVITY_SERVICE); // 获取正在运行的应用 run = am.getRunningAppProcesses(); // 获取包管理器,在这里主要通过包

手机应用获取验证码后。提交到服务器,服务器如何判断

手机应用从服务应用获取短信验证码后.再次提交到服务器,服务器如何判断是否和之前一致. 可能同时有很多同时验证.麻烦各位提供个思路 两种方式: 1.如果对验证码有时间限制,可以在服务端生成验证码之后,存储在session里面,同时在session里面存储当前时间.手机提交后,服务端拿到验证码验证并用当前时间减去刚才保存的时间看是否超时. 2.如果没有时间限制,可以放到数据库里面. http://www.iteye.com/problems/124176 http://www.iteye.com/p

Android使用Timer编写倒计时程序

开篇大家可以先看看Timer的基础用法,以及简单的原理.http://my.oschina.net/zhengweishan/blog/493891 Java之Timer使用.这里我要说的是Android使用Timer编写一个倒计时程序. 需求:实现简单的倒计时程序.要求可以根据用户的输入实现倒计时,时间到的时候有友好的提示. 分析:首先要实现这个功能,我想到的第一个方法就是使用Timer这个类.然后就是分析用户界面怎么设计,由于这个是简单程序,所以就采用Android原生的一些UI组件Butt

Jquery插件实现“点击获取验证码后60秒内禁止重新获取(仿刷新)”

效果图: 先到官网(http://plugins.jquery.com/cookie/)下载cookie插件,放到相应文件夹,代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title&

点击获取验证码后60秒内禁止重新获取(防刷新)

<script> $(function(){ /*防刷新:检测是否存在cookie*/ if($.cookie("captcha")){ var count = $.cookie("captcha"); var btn = $('#getting'); btn.val(count+'秒后可重新获取').attr('disabled',true).css('cursor','not-allowed'); var resend = setInterval(f