直接看这里吧,我仅仅是搬运工。 



定时运行在一段时候后停止的倒计时,在倒计时运行过程中会在固定间隔时间得到通知(译者:触发onTick方法),以下的样例显示在一个文本框中显示一个30s倒计时:

  1. , 1000) {
  2. public void onTick(long millisUntilFinished) {
  3. );
  4. }
  5. public void onFinish() {
  6. mTextField.setText("done!");
  7. }
  8. }.start();

onTick的调用是同步的,保证这次调用不会在之前调用完毕前发生。这里的同步机制主要是用来:onTick的实现须要非常多时间运行比倒计时间隔更重要的事情。 



构造函数 

         public CountDownTimer (long millisInFuture, long countDownInterval) 

參数 

                   millisInFuture  从開始调用start()到倒计时完毕并onFinish()方法被调用的毫秒数。(译者注:倒计时时间,单位毫秒) 

                   countDownInterval  接收onTick(long)回调的间隔时间。(译者注:单位毫秒) 



公共方法 

public final void cancel () 

         取消倒计时(译者:取消后,再次启动会又一次開始倒计时)        

                  

public abstract void onFinish () 

         倒计时完毕时被调用    



public abstract void onTick (long millisUntilFinished) 

         固定间隔被调用 

參数 

                            millisUntilFinished   倒计时剩余时间。 



public synchronized final CountDownTimer start () 

         启动倒计时

Java代码  
  1. import android.app.Activity;
  2. import android.os.Bundle;
  3. import android.os.CountDownTimer;
  4. import android.util.Log;
  5. import android.view.View;
  6. import android.view.View.OnClickListener;
  7. import android.widget.Button;
  8. import android.widget.TextView;
  9. import com.test.R;
  10. public class CountDownTimeActivity extends Activity implements OnClickListener {
  11. TextView mTextView;
  12. Button mButton1;
  13. Button mButton2;
  14. @Override
  15. protected void onCreate(Bundle savedInstanceState) {
  16. super.onCreate(savedInstanceState);
  17. setContentView(R.layout.countdown);
  18. mTextView = (TextView)findViewById(R.id.textView1);
  19. mButton1 = (Button)findViewById(R.id.button1);
  20. mButton2 = (Button)findViewById(R.id.button2);
  21. mButton1.setOnClickListener(this);
  22. mButton2.setOnClickListener(this);
  23. }
  24. ,1000) {
  25. @Override
  26. public void onTick(long millisUntilFinished) {
  27. );
  28. try {
  29. );
  30. } catch (InterruptedException e) {
  31. e.printStackTrace();
  32. }
  33. Log.e("CountDown",millisUntilFinished+"");
  34. }
  35. @Override
  36. public void onFinish() {
  37. mTextView.setText("done!");
  38. }
  39. };
  40. @Override
  41. public void onClick(View v) {
  42. switch(v.getId()){
  43. case R.id.button1:
  44. timer.start();
  45. break;
  46. case R.id.button2:
  47. timer.cancel();
  48. break;
  49. }
  50. }
  51. }

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activation);

initView();

resendBTCountDownTimer(resendBtn,false);

}

/**

* 重发验证码button倒计时操作

* @param resendBtn

* @param resendCode: false初始化并倒计时開始;true点击次数倒计时開始并又一次获取验证码操作

*/

public void resendBTCountDownTimer(final Button resendBtn,boolean resendCode){

if(resendCount>5){

resendBtn.setText(R.string.resentcode_5times_tips);

resendBtn.setEnabled(false);

resendBtn.setBackgroundResource(R.drawable.button_no_cliable);

return;

}else{

new CountDownTimer(MILLIS_INFUTURE, COUNTDOWN_INTERVAL) {

@Override

public void onTick(long millisUntilFinished) {

resendBtn.setEnabled(false);

resendBtn.setBackgroundResource(R.drawable.button_no_cliable);

resendBtn.setText(getString(R.string.regetcodeafter30s, millisUntilFinished/1000));

}

@Override

public void onFinish() {

resendBtn.setText(R.string.resend_code);

resendBtn.setEnabled(true);

resendBtn.setBackgroundResource(R.drawable.registbtn);

}

}.start();

if(resendCode){

resendCount++ ;

regetCheckCodeFun();

}

}

}

倒计时的CountDownTimer的更多相关文章

  1. 发送短信验证码倒计时,CountDownTimer;

    1.声明CountDownTimer的成员变量: private CountDownTimer countDownTimer; 2.设置倒计时总时间和间隔时间: countDownTimer = ne ...

  2. Android基础之CountDownTimer 倒计时类

    app常用的60s倒计时计时功能: private static final int TIME_LIMIT = 60; private void initView() { // 相关控件 mResen ...

  3. Android倒计时CountDownTimer小记

    Android 超简便的倒计时实现:  CountDownTimer CountDownTimer由系统提供 查资料的时候 发现了CountDownTimer这个类之后 果断抛弃了曾经的倒计时做法 功 ...

  4. Android---闪频页和倒计时

    android闪频的实现非常简单,使用Handler对象的postDelayed()方法就可以实现.在这个方法里传递一个Runnable对象和一个延迟的时间.该方法实现了一个延迟执行的效果,延迟的时间 ...

  5. Android中方便好用的倒计时类

       一.使用api提供的类进行操作 Android提供了CountDownTimer来让我们进行倒计时,可以让我们很方便的进行倒计时的操作.使用方式也很简单,下面直接贴代码就好了: package ...

  6. swift - 添加定时器

    mport UIKit /// 控制定时器的类 class ZDTimerTool: NSObject { /// 定时器 // private var timer: Timer? /// GCD定时 ...

  7. swift - 封装 GCDTimer 和 NSTimer

    封装的类代码 import UIKit /// 控制定时器的类 class ZDTimerTool: NSObject { /// 定时器 // private var timer: Timer? / ...

  8. android 定时, 延时 任务

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 倒计时类  用  倒计时定时器CountDownTimer 延迟类 CountDownT ...

  9. 【转】Pro Android学习笔记(二三):用户界面和控制(11):其他控件

    目录(?)[-] Chronometer计时器控件 倒计时CountDownTimer Switch控件 Space控件 其他控件 Android提供了很多控件,基本上都是view的扩展. Chron ...

随机推荐

  1. [AngularFire2] Update multi collections at the same time with FirebaseRef

    At some point, you might need to udpate multi collections and those collections should all updated s ...

  2. php实现合并两个排序的链表(很多情况下新建数组装东西比连东西逻辑快很多)($cur=$cur->next;的理解)

    php实现合并两个排序的链表(很多情况下新建数组装东西比连东西逻辑快很多)($cur=$cur->next;的理解) 一.总结 $cur=$cur->next;这句话需要好好理解 指$cu ...

  3. 洛谷 P4013 数字梯形问题

    ->题目链接 题解: 网络流. #include<cstdio> #include<iostream> #include<queue> #include< ...

  4. P2P网络借贷系统-核心功能-用户投标-业务讲解

    用户投标是P2P网络借贷系统的核心功能,相对比较复杂,为了更好地梳理业务和技术实现思路,特地详细总结分析下. 输入:用户id-uid,标的id-lid,投标金额-amount 1.根据lid,获得贷款 ...

  5. 安装hadoop1.2.1集群环境 分类: A1_HADOOP 2014-08-29 15:49 1444人阅读 评论(0) 收藏

    一.规划 (一)硬件资源 10.171.29.191 master 10.173.54.84  slave1 10.171.114.223 slave2 (二)基本资料 用户:  jediael 目录 ...

  6. 【solr专题之四】关于VelocityResponseWriter 分类: H4_SOLR/LUCENCE 2014-07-22 12:32 1639人阅读 评论(0) 收藏

    一.关于Velocity的基本配置 在Solr中,可以以多种方式返回搜索结果,如单纯的文本回复(XML.JSON.CSV等),也可以返回velocity,js等格式.而VelocityResponse ...

  7. 配置java 环境变量(jdk)

    java环境变量需要配置3个: JAVA_HOME:D:\Program Files (x86)\Java\jdk1.8 CLASSPATH:.;%JAVA_HOME%\lib\dt.jar;%JAV ...

  8. 【t010】最近距离

    Time Limit: 1 second Memory Limit: 32 MB [问题描述] 聚类方法要求将空间中的点集,按照一点的方式进行归类,要求每一类中的点集相互之间的距离足够的"近 ...

  9. RGCDQ(线段树+数论)

    题意:求n和m之间的全部数的素因子个数的最大gcd值. 分析:这题好恶心.看着就是一颗线段树.但本题有一定的规律,我也是后来才发现,我还没推出这个规律.就不说了,就用纯线段树解答吧. 由于个点数都小于 ...

  10. 辛星浅析yaf框架中的类的自己主动载入问题

    因为公司非常多项目都是基于yaf的,而非常多刚接触yaf的朋友问的第一个问题就是:yaf的自己主动载入是依照什么规则来的. 鉴于此.于是我特别开了一篇博文来记录一下. 首先在yaf中.models文件 ...