倒计时的CountDownTimer
直接看这里吧,我仅仅是搬运工。
定时运行在一段时候后停止的倒计时,在倒计时运行过程中会在固定间隔时间得到通知(译者:触发onTick方法),以下的样例显示在一个文本框中显示一个30s倒计时:
- , 1000) {
- public void onTick(long millisUntilFinished) {
- );
- }
- public void onFinish() {
- mTextField.setText("done!");
- }
- }.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 ()
启动倒计时
- import android.app.Activity;
- import android.os.Bundle;
- import android.os.CountDownTimer;
- import android.util.Log;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.TextView;
- import com.test.R;
- public class CountDownTimeActivity extends Activity implements OnClickListener {
- TextView mTextView;
- Button mButton1;
- Button mButton2;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.countdown);
- mTextView = (TextView)findViewById(R.id.textView1);
- mButton1 = (Button)findViewById(R.id.button1);
- mButton2 = (Button)findViewById(R.id.button2);
- mButton1.setOnClickListener(this);
- mButton2.setOnClickListener(this);
- }
- ,1000) {
- @Override
- public void onTick(long millisUntilFinished) {
- );
- try {
- );
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- Log.e("CountDown",millisUntilFinished+"");
- }
- @Override
- public void onFinish() {
- mTextView.setText("done!");
- }
- };
- @Override
- public void onClick(View v) {
- switch(v.getId()){
- case R.id.button1:
- timer.start();
- break;
- case R.id.button2:
- timer.cancel();
- break;
- }
- }
- }
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的更多相关文章
- 发送短信验证码倒计时,CountDownTimer;
1.声明CountDownTimer的成员变量: private CountDownTimer countDownTimer; 2.设置倒计时总时间和间隔时间: countDownTimer = ne ...
- Android基础之CountDownTimer 倒计时类
app常用的60s倒计时计时功能: private static final int TIME_LIMIT = 60; private void initView() { // 相关控件 mResen ...
- Android倒计时CountDownTimer小记
Android 超简便的倒计时实现: CountDownTimer CountDownTimer由系统提供 查资料的时候 发现了CountDownTimer这个类之后 果断抛弃了曾经的倒计时做法 功 ...
- Android---闪频页和倒计时
android闪频的实现非常简单,使用Handler对象的postDelayed()方法就可以实现.在这个方法里传递一个Runnable对象和一个延迟的时间.该方法实现了一个延迟执行的效果,延迟的时间 ...
- Android中方便好用的倒计时类
一.使用api提供的类进行操作 Android提供了CountDownTimer来让我们进行倒计时,可以让我们很方便的进行倒计时的操作.使用方式也很简单,下面直接贴代码就好了: package ...
- swift - 添加定时器
mport UIKit /// 控制定时器的类 class ZDTimerTool: NSObject { /// 定时器 // private var timer: Timer? /// GCD定时 ...
- swift - 封装 GCDTimer 和 NSTimer
封装的类代码 import UIKit /// 控制定时器的类 class ZDTimerTool: NSObject { /// 定时器 // private var timer: Timer? / ...
- android 定时, 延时 任务
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha 倒计时类 用 倒计时定时器CountDownTimer 延迟类 CountDownT ...
- 【转】Pro Android学习笔记(二三):用户界面和控制(11):其他控件
目录(?)[-] Chronometer计时器控件 倒计时CountDownTimer Switch控件 Space控件 其他控件 Android提供了很多控件,基本上都是view的扩展. Chron ...
随机推荐
- 结合Wireshark捕获分组深入理解TCP/IP协议栈
摘要: 本文剖析了浏览器输入URL到整个页面显示的整个过程,以百度首页为例,结合Wireshark俘获分组进行详细分析整个过程,从而更好地了解TCP/IP协议栈. 一.俘获分组 1.1 准 ...
- HDU 1248 寒冰王座 完全背包
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1248 中文题,大意就不说了. 第一道完全背包题,跟着背包九讲做的. 和0-1背包的区别在于所不同的是每种 ...
- CD Linux U盘启动办法
1.用ULtraISO打开cdlinux的ISO文件,用USB-HDD+写入到U盘上。 2.下载GRUB4DOS软件,复制grldr和menu.lst到U盘。 3.下载bootice软件,在U盘的分区 ...
- hprof教程 分类: B1_JAVA 2015-03-02 12:18 444人阅读 评论(0) 收藏
大部分内容参考http://www.linuxidc.com/Linux/2012-04/58178.htm J2SE中提供了一个简单的命令行工具来对java程序的cpu和heap进行 profili ...
- tc
[em_Compare]cmd=d:\Apps\BeyondCompare4\now\BCompare.exeparam="""%X%P%S"" &q ...
- Spring+Netty+WebSocket实例
比较贴近生产,详见注释 一.pom.xml 具体太长,详见源码 </dependency> <dependency> <groupId>io.netty</g ...
- (七)RabbitMQ消息队列-通过fanout模式将消息推送到多个Queue中
原文:(七)RabbitMQ消息队列-通过fanout模式将消息推送到多个Queue中 前面第六章我们使用的是direct直连模式来进行消息投递和分发.本章将介绍如何使用fanout模式将消息推送到多 ...
- [Grid Layout] Use the minmax function to specify dynamically-sized tracks
Using minmax() is an amazingly useful way to specify boundaries for the smallest and largest size a ...
- ITFriend创业败局(五):创业可以停止,公司必须注销,不然后果很严重
马上又要继续出来创业做事了,想到要注册公司,有个麻烦事. 事情得回到2014年9月. 当时,由于各种因素,决定放弃ITFriend,当然也放弃了原来了公司.先是,咨询了横德瑞的陈总,关于公司注销的事. ...
- 【u213&&t037】修剪花卉
Time Limit: 1 second Memory Limit: 128 MB [问题描述] ZZ对数学饱有兴趣,并且是个勤奋好学的学生,总是在课后留在教室向老师请教一些问题. 一天他早晨骑车去上 ...