千家信息网

Android怎么使用Handler实现定时器与倒计时器功能

发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,这篇文章主要讲解了"Android怎么使用Handler实现定时器与倒计时器功能",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Android怎么使用H
千家信息网最后更新 2024年11月24日Android怎么使用Handler实现定时器与倒计时器功能

这篇文章主要讲解了"Android怎么使用Handler实现定时器与倒计时器功能",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Android怎么使用Handler实现定时器与倒计时器功能"吧!

什么是Handler

Handler是Android消息机制的上层接口,它为我们封装了许多底层的细节,让我们能够很方便的使用底层的消息机制。Handler的最常见应用场景之一便是通过Handler在子线程中间接更新UI。Handler的作用主要有两个:一是发送消息;二是处理消息,它的运作需要底层Looper和MessageQueue的支撑。MessageQueue即消息队列,它的底层用单链表实现;Looper则负责在一个循环中不断从MessageQueue中取消息,若取到了就交由Handler进行处理,否则便一直等待。关于Looper需要注意的一点是除了主线程之外的其他线程中默认是不存在Looper的。主线程中之所以存在,是因为在ActivityThread被创建时会完成初始化Looper的工作。

特性

支持操作 :

start
pause
resume
cancel

使用

allprojects { repositories { ... maven { url 'https://jitpack.io' } }}dependencies { ... compile 'com.github.xesam:AndroidTimer:v0.1'}

TODO

add ticker sequence

使用

CountTimer

 new CountTimer(100) { @Override public void onTick(long millisFly) { // millisFly is the Elapsed time at *Running State*  vCountSwitcher.setText((millisFly) + "");  Log.d("onTick", millisFly + ""); } };

CountDownTimer

 new CountDownTimer(10_000, 100) { @Override public void onTick(long millisUntilFinished) { // millisUntilFinished is the left time at *Running State*  Log.d("onTick", millisFly + ""); } @Override public void onCancel(long millisUntilFinished) { } @Override public void onPause(long millisUntilFinished) { } @Override public void onResume(long millisUntilFinished) { } @Override public void onFinish() { } };

使用一个 Handler 同时管理多个定时任务

创建多个任务:

MultiCountTimer multiCountTimer = new MultiCountTimer(100); multiCountTimer.add(new CounterTimerTask(1) {  @Override  public void onTick(long millisFly) {  vMulti1.setText("multi_1:" + millisFly);  } }).registerTask(new CounterTimerTask(2, 100) {  @Override  public void onTick(long millisFly) {  vMulti2.setText("multi_2:" + millisFly);  } }).registerTask(new CounterTimerTask(3, 1000) {  @Override  public void onTick(long millisFly) {  vMulti3.setText("multi_3:" + millisFly);  } }); multiCountTimer.startAll();

取消任务:

 multiCountTimer.cancel(2); 或者 multiCountTimer.cancelAll();

感谢各位的阅读,以上就是"Android怎么使用Handler实现定时器与倒计时器功能"的内容了,经过本文的学习后,相信大家对Android怎么使用Handler实现定时器与倒计时器功能这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

0