注册时手机获取验证码倒计时,使用CountDownTimer类轻松实现倒计时功能

CountDownTimer由系统提供
查资料的时候 发现了CountDownTimer这个类之后 果断抛弃了以前的倒计时做法

功能:
30秒倒计时 每次间隔1秒

参数:
mc.start();方法开始

mc.cancel();方法结束
new MyCountDownTimer(30000, 1000); 第一个参数表示 总的时间为30000毫秒,间隔1000毫秒

直接上代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package com.example.daojishi;
  
import android.app.Activity;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
  
/**
  *
  * @author baozi
  *
  * 倒计时的类 CountDownTimer
  *
  */
public class MainActivity extends Activity {
  
   private MyCountDownTimer mc;
   private TextView tv;
  
   @Override
   protected void onCreate(Bundle savedInstanceState) {
     super .onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);
     tv = (TextView) findViewById(R.id.show);
     mc = new MyCountDownTimer( 30000 , 1000 );
     mc.start();
   }
  
   public void oncancel(View view) {
     Toast.makeText(MainActivity. this , "取消" , Toast.LENGTH_LONG).show(); // toast有显示时间延迟
     mc.cancel();
   }
  
   public void restart(View view) {
     Toast.makeText(MainActivity. this , "重新开始" , Toast.LENGTH_LONG).show(); // toast有显示时间延迟
     mc.start();
   }
  
   /**
    * 继承 CountDownTimer 防范
    *
    * 重写 父类的方法 onTick() 、 onFinish()
    */
  
   class MyCountDownTimer extends CountDownTimer {
     /**
      *
      * @param millisInFuture
      *      表示以毫秒为单位 倒计时的总数
      *
      *      例如 millisInFuture=1000 表示1秒
      *
      * @param countDownInterval
      *      表示 间隔 多少微秒 调用一次 onTick 方法
      *
      *      例如: countDownInterval =1000 ; 表示每1000毫秒调用一次onTick()
      *
      */
     public MyCountDownTimer( long millisInFuture, long countDownInterval) {
       super (millisInFuture, countDownInterval);
     }
  
     @Override
     public void onFinish() {
       tv.setText( "done" );
     }
  
     @Override
     public void onTick( long millisUntilFinished) {
       Log.i( "MainActivity" , millisUntilFinished + "" );
       tv.setText( "倒计时(" + millisUntilFinished / 1000 + ")..." );
     }
   }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值