欢迎来到代码驿站!

Android代码

当前位置:首页 > 移动开发 > Android代码

Android倒计时神器(CountDownTimer)

时间:2021-06-20 08:49:09|栏目:Android代码|点击:

Android倒计时神器 - CountDownTimer,供大家参考,具体内容如下

啥是CountDownTimer?​

CountDownTimer是Andorid.os包下一个谷歌为我们封装好的一个倒计时工具。我们吗、平时开发过程中像一些验证码、倒计时的功能,如果自己封装一个倒计时工具就会稍显麻烦。而谷歌这个工具使用起来非常方便。

源码

package android.os;

public abstract class CountDownTimer {
 public CountDownTimer(long millisInFuture, long countDownInterval) {
 throw new RuntimeException("Stub!");
 }

 public final synchronized void cancel() {
 throw new RuntimeException("Stub!");
 }

 public final synchronized CountDownTimer start() {
 throw new RuntimeException("Stub!");
 }

 public abstract void onTick(long var1);

 public abstract void onFinish();
}

构造函数:

两个参数,第一个是总的倒计时时间,第二个是倒计时间隔。比如1秒跳一次该参数就为1000,两个参数的单位都为毫秒。

start():

调用该方法以启动计时器。

cancel():

调用该方法以释放计时器。

重要!一定要在onDestory等回调中cancel()计时器,否则会因为页面被回收计时器还在运作而出现空指针错误!

回调方法:

onTick():

每个时间间隔会回调一次,比如设置了1000ms的间隔,就会每1000ms回调一次这个方法。

onFinish():

在整个计时器结束之后回调。

使用中的一些坑

计时不准的问题

虽然这个工具有针对延迟做了处理,但是因为一些其他原因,导致CountDownTimer开始计时的时候极有可能不从你设定的总时长开始计时。比如你设定的millsInFuture是30000(30s),CountDownTimer其实是从29xxx开始计时的,这样会导致一些Text的UI显示快一秒。解决办法就是在构造的时候就传入一个比30000大一些的数,比如30300.

内存泄漏/空指针问题

CDT内部其实是对Handler有做一个封装,所以一定一定要在回收的时候调用Timer的cnacel()方法,否则容易出现空指针错误。

上一篇:android中DownloadManager实现版本更新,监听下载进度实例

栏    目:Android代码

下一篇:android自定义组件实现方法

本文标题:Android倒计时神器(CountDownTimer)

本文地址:http://www.codeinn.net/misctech/145041.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有