搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
爱喝兽奶帝天荒
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
python中,如何把中文句子向量化
2
爬取笔趣阁小说_爬取笔趣阁小说需要做ip代理吗
3
【精品毕设】基于JavaEE的离散数学题库管理系统(包含论文+源码)_基于java的题库及试卷管理系统设计
4
Stable Diffusion本地化部署详细攻略_stable diffusion配置要求
5
list容器
6
AIGC绘画设计基础-建筑设计应用_hd-aidmaster
7
数据结构java版之二叉树(基础知识篇)_java二叉树
8
5.布隆过滤器_布隆过滤器为什么经历duocihash
9
Linux3._Linux环境基础开发工具使用_01bz
10
Win11提示由于找不到msvcr100.dll文件问题的解决办法_win11 msvcp100.dll
当前位置:
article
> 正文
Android CountDownTimer倒计时器
作者:爱喝兽奶帝天荒 | 2024-07-11 06:01:24
赞
踩
android countdowntimer
Android开发,常常需要用到倒计时器,倒计时多少秒后再执行相应的功能,
Android已经封装好了几个类,
下面就分别来讲讲
这三种常用计时的方法。
一、CountDownTimer
该类是个抽象类,主要功能就是可以我们自己设置倒计时的秒数和时间间隔,只有一个构造方法,构造函数为:
public CountDownTimer(long millisInFuture, long countDownInterval) {}
可以看出需要传入两个参数进去,第一个参数是设置倒计时的总时间,第二个参数是设置倒计时的时间间隔。
使用的时候需要实现它的两个方法,分别是:onTick()和onFinish()方法,
在一个Button不断显示剩下的时间,代码如下:
调用的时候很简单:timer.start();
pr
ivate
Button btn;
private
CountDownTimer timer =
new
CountDownTimer(
10000
,
1000
) {
@Override
public
void
onTick(
long
millisUntilFinished) {
btn
.setText((millisUntilFinished /
1000
) +
"秒后可重发"
);
}
@Override
public
void
onFinish() {
btn
.setEnabled(
true
);
btn
.setText(
"获取验证码"
);
}
};
我们说说这两个方法分别是什么意思:
onTick(long millisUntilFinished):这个方法中的参数是在倒计时过程中传入进来的毫秒数,比如倒计时总时间为6秒,时间间隔
为一秒,那么这个参数的传进来的值依次为:5、4、3、2、1。
onFinish():这个方法就是当倒计时完毕时候触发,这时候可以设置一些配置,比如一个申请验证码的按钮,在倒计时过程中设置为
失去焦点,等倒计时完毕后,就在这个方法中设置为得到焦点。
注意:使用时只需要new个对象出来并传入总时间和时间间隔(单位为毫秒),这时候千万别漏了.start()方法,让它启动。
二
、Timer
这个类功能也是用于计时的,而且是线程安全的,创建这个类的对象,直接Timer mTimer=new Timer();new出来,这个对象的主要方法就一个就是schedule(),意思是计时计划,计时安排。主要讲其中两个方法:
mTimer.schedule(task, when);这个方法第一个参数就是需要传入一个TimerTask对象,该对象实现了Runnable接口,简单的说就是一个线程对象,就是开一个线程来执行run()方法中的代码的。第二个参数传入的类型是Date类型,意思就是定时一样,这个run()方法中的代码在什么时候执行。
mTimer.schedule(task, delay);这个方法的第一个参数和上面的一样。第二个参数就是一个long类型的数据,意思就是延迟多少时间执行run()方法中的代码,单位为毫秒。
上代码:
Timer mTimer = new Timer();
TimerTask mTimerTask = new TimerTask() {//创建一个线程来执行run方法中的代码
@Override
public void run() {
//要执行的代码
}
};
mTimer.schedule(mTimerTask, 3000);//延迟3秒执行
注意:在该计时器中创建的线程不是主线程,而是创建了一个子线程,子线程中不能直接更新UI,故在run方法中不能执行有关更
新
主界面UI的代码,如果要更新UI,那必须用消息处理器Handler来处理,在run中发送一个消息给消息队列。
如果想既要达到计时的功能,又可以在执行的代码中直接更新主界面UI,那有没有一个好办法呢?答案是有的,就是第三点
三、new Handler(
).postDelayed()
该方法就是利用我们常说的消息处理器。原理就是在主线程中创建一个Handler消息处理器,然后利用其中的一个
postDelayed(Runnable r, long delayMillis)方法,该方法第一个参数需要传入一个Runnable接口,并实现run()方法,第二个参数就是延迟多少时间将run()方法中的代码通过一个消息发送给消息队列,然后在主线程中执行这个消息中的代码,即是run方法中的代码,从而实现在主线程中更新界面UI。
贴代码:
new Handler().postDelayed(new Runnable() {//在当前线程(也即主线程中)开启一个消息处理器,并在3秒后在主线程中执行,从而来更新UI
@Override
public void run() {
//有关更新UI的代码
}
}, 3000);//3秒后发送
声明:
本文内容由网友自发贡献,转载请注明出处:
【wpsshop】
推荐阅读
article
Android
使用
CountDownTimer
实现定时任务_
android
countdownti...
本篇博客将介绍如何使用
CountDownTimer
定时器类来实现诸如定时网络请求、验证码倒计时重新发送等定时任务_and...
赞
踩
article
CountDownTimer
一步
实现
最简单
的
倒计时
控件...
1
CountDownTimer
CountDownTimer
是Google提供
的
一个
倒计时
工具类,利用这个工具可以很方便...
赞
踩
article
Android中三种计时器
Timer
、CountDown
Timer
、handler.postDela...
在android开发中,我们常常需要用到计时器,倒计时多少秒后再执行相应的功能,下面我就分别来讲讲这三种常用的计时的方法...
赞
踩
article
2024年
Android
最新
Android
倒
计时器
——
CountDownTimer
,
阿里一面面试官什...
只要是程序员
,
不管是Java还是
Android
,
如果不去阅读源码
,
只看API文档
,
那就只是停留于皮毛
,
这对我们知识体系的...
赞
踩
article
【Android】
CountDownTimer
的
使用
_
android
countdowntimer
...
最后,我们
使用
CountDownTimer
实现了倒计时功能,并在onTick方法中更新了倒计时文本的内容。这样,就实现了...
赞
踩
article
Android
CountDownTimer
(计时器)...
简单介绍介绍: 定时执行在一段时间后停止的倒计时,在倒计时执行过程中会在固定间隔时间得到通知。参数: millisInF...
赞
踩
article
CountDownTimer
倒计时
不准确
问题
解决...
CountDownTimer
倒计时
不准确
问题
解决。那么我们可以采用延迟的办法来及解决这个
问题
,即在2900的时候对3不...
赞
踩
article
Android
CountDownTimer
实现倒计时任务...
Android
应用开发中,想要在多少秒之后执行一个操作是非常常见的场景。使用线程或者计时器来执行固然是一个好方法,但是如...
赞
踩
article
Android
中
CountDownTimer
类详解_
android
countdowntimer
...
Android
中
CountDownTimer
类详解_
android
countdowntimer
android
coun...
赞
踩
article
Android
四种
计时器
Thread
、
Timer
、CountDown
Timer
、
handler
.p...
Android
四种
计时器
Thread
、
Timer
、CountDown
Timer
、
handler
.postDelayed...
赞
踩
article
android
倒计时
服务,
Android
倒计时
器——
CountDownTimer
...
倒计时
器
CountDownTimer
使用介绍 开发中经常会遇到一些和
倒计时
有关的场景,比如发送验证码的按钮,会在点击发...
赞
踩
相关标签
android
java
android studio
CountDownTimer
倒计时控件
面试
学习
数据结构
ide
androidx
王睿丶
android倒计时服务