android中使用CountDownTimer实现倒计时功能

在软件开发中,我们经常要做一些倒计时执行指定代码的功能。比如发送短信验证码,当用户第一次点击获取验证码按钮后,我们一般会做一个倒计时,比如60秒,限制60秒内用户不能重新获取验证码,这样可以防止用户乱按,乱获取验证码,消耗短信接口的费用。今天,我们就来实现这样的一个功能。


先来看一下效果图。






我们实现的功能是,当点击按钮时,在按钮上显示倒计时秒数,然后倒计时完成后,在按钮上显示倒计时完成的提示。


实现这个功能其实很简单,只要用到一个CountDownTimer类。下面我们直接上源码。


final Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener()
{
    @Override
    public void onClick(View v)
    {
	CountDownTimer countDownTimer = new CountDownTimer(30000, 1000)
	{
	    @Override
	    public void onTick(long millisUntilFinished)
	    {
		button.setText("倒计时:" + millisUntilFinished / 1000 + "秒");
	    }

	    @Override
	    public void onFinish()
	    {
		button.setText("倒计时完成!");
	    }
	}.start();

	//取消倒计时可以调用cancel()方法
	//countDownTimer.cancel();
    }
});


在new CountDownTimer(30000, 1000)中,第一个参数30000表示总共要倒计时的毫秒数,注意,单位是毫秒。这里的30000表示30秒(1秒 = 1000毫秒)。第二个参数1000表示倒计时间隔(实际应该不是这么叫的),表示的是每隔1秒计数一次。


onTick(long millisUntilFinished)

这个onTick方法,就是表示每隔上面的1秒触发一次的事件。millisUntilFinished表示剩余的倒计时毫秒数。我们这里除以1000即可得到剩余的秒数。


onFinish()

此方法在整个倒计时任务完成时触发。


我们上面的事例很简单,大家只要稍加修改一下,就可以改成非常实用的功能。

  1. 本网站所收集的部分资料来源于互联网,本站不对其真实性负责,也不构成任何其他建议。如果您发现有侵犯您权益的内容,请与我们取得联系,我们会及时修改或删除。
  2. 传递知识、传递力量,欢迎各位网友对本站的文章进行转载和分享。
  3. 本站QQ群交流群:904314688  群号:904314688
发表评论
 
评论列表(目前共有 条评论)
暂时还没有评论哦~

文章搜索

商家广告


版权所有:秋风雅居 (www.198933.com) ©2024 All Rights Reserved.

粤ICP备20031662号