软件编程
位置:首页>> 软件编程>> Android编程>> Android使用Handler实现定时器与倒计时器功能

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

作者:莫非有道  发布时间:2022-03-30 09:06:57 

标签: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实现定时器与倒计时器功能网站的支持!

来源:https://yq.aliyun.com/articles/493839?utm_content=m_42603

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com