您所在的位置: &
Android -- 倒计时的实现
Android -- 倒计时的实现
我爱物联网
CountDownTimer这个类,实现了倒计时的功能。将后台线程的创建和Handler队列封装成一个方便的类调用。这个类比较简单,只有四个方法:onTick,onFinsh、cancel和start。其中前面两个是抽象方法,所以要重写一下。
CountDownTimer这个类,实现了倒计时的功能。将后台线程的创建和Handler队列封装成一个方便的类调用。
这个类比较简单,只有四个方法:onTick,onFinsh、cancel和start。其中前面两个是抽象方法,所以要重写一下。
下面是官方给的一个小例子:
new&CountdownTimer(30000,&1000)&{&&&&&&&public&void&onTick(long&millisUntilFinished)&{&&&&&&&&&&&mTextField.setText(&seconds&remaining:&&&+&millisUntilFinished&/&1000);&&&&&&&}&&&&&&&public&void&onFinish()&{&&&&&&&&&&&mTextField.setText(&done!&);&&&&&&&}&&&&}.start();&
ackage&com.yydcdut.&&import&android.os.B&import&android.os.CountDownT&import&android.app.A&import&android.view.M&import&android.widget.TextV&import&android.widget.T&&public&class&MainActivity&extends&Activity&{&&&&&private&MyCount&&&&&&&&private&TextView&&&&&&@Override&&&&&protected&void&onCreate(Bundle&savedInstanceState)&{&&&&&&&&&super.onCreate(savedInstanceState);&&&&&&&&&setContentView(R.layout.activity_main);tv&=&(TextView)findViewById(R.id.show);&&&&&&&&&&&mc&=&new&MyCount(30000,&1000);&&&&&&&&&&&mc.start();&&&&&}&&&&&&@Override&&&&&public&boolean&onCreateOptionsMenu(Menu&menu)&{&&&&&&&&&&&&&&&&&&getMenuInflater().inflate(R.menu.main,&menu);&&&&&&&&&return&true;&&&&&}&&&&&&&&&&&&&&&&&class&MyCount&extends&CountDownTimer&{&&&&&&&&&&&&&&public&MyCount(long&millisInFuture,&long&countDownInterval)&{&&&&&&&&&&&&&&&&&&super(millisInFuture,&countDownInterval);&&&&&&&&&&&&&&}&&&&&&&&&&&&&&@Override&&&&&&&&&&&&&&public&void&onFinish()&{&&&&&&&&&&&&&&&&&&tv.setText(&finish&);&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&@Override&&&&&&&&&&&&&&public&void&onTick(long&millisUntilFinished)&{&&&&&&&&&&&&&&&&&&tv.setText(&请等待30秒(&&+&millisUntilFinished&/&1000&+&&)...&);&&&&&&&&&&&&&&&&&&Toast.makeText(MainActivity.this,&millisUntilFinished&/&1000&+&&&,&Toast.LENGTH_LONG).show();&&&&&&&&&}&&&&&&&&&}&&&&&&&}&
&主要是重写onTick和onFinsh这两个方法,onFinish()中的代码是计时器结束的时候要做的事情;onTick(Long m)中的代码是你倒计时开始时要做的事情,参数m是直到完成的时间,构造方法MyCount()中的两个参数中,前者是倒计的时间数,后者是倒计每秒中间的间隔时间,都是以毫秒为单位。例如要倒计时30秒,每秒中间间隔时间是1秒,两个参数可以这样写MyCount()。 将后台线程的创建和Handler队列封装成为了一个方便的类调用。
当你想取消的时候使用mc.cancel()方法就行了。
本文链接:/yydcdut/p/3908966.html
【编辑推荐】
【责任编辑: TEL:(010)】
关于&&的更多文章
本书以谷歌的音乐播放器为例,深入剖析了Android 的重要组件和核
随着云计算、物联网、大数据、移动互联网的大发展,你应该知道这些。
讲师: 24人学习过讲师: 75人学习过讲师: 133人学习过
从打车到租车,汽车服务市场服务模式多样,打车应用经
Android Studio是一套面世不久的IDE(即集成开发环境
刚刚结束的 Google I/O 大会上,Android 下一代操作系
本书从基础知识入手,详细讨论了Oracle数据库的创建、OEM及iSQL*Plus等工具的使用、Oracle的字符集知识、用户的创建与管理、表空
Windows Phone专家
Android开发专家
51CTO旗下网站用户激活短信通道向用户手机发送验证码短信以验明正身
&action=&/&&method=&post&&name=&myform&&&&&&&type=&button&&class=&button&&value=&获取手机验证码&&&name=&phone&&onclick=&showtime(30)&&&
script&&function&showtime(t){&&&&&document.myform.phone.disabled=&&&&&(i=1;i&=t;i++)&{&&&&&&&&&window.setTimeout(&update_p(&&+&i&+&&,&+t+&)&,&i&*&1000);&&&&&}&&}&&function&update_p(num,t)&{&&&&&(num&==&t)&{&&&&&&&&&document.myform.phone.value&=&&重新发送&&;&&&&&&&&&document.myform.phone.disabled=&&&&&}&&&&&&{&&&&&&&&&printnr&=&t-&&&&&&&&&document.myform.phone.value&=&&&(&&+&printnr&+&)秒后重新发送&;&&&&&}&}&&/script&&
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:3912次
排名:千里之外