基于Handler的Android定时器与倒计时器
源码地址:Github AndroidTimer
特性
支持操作 :
- start
- pause
- resume
- cancel
注意
以上方法是同步方法,请不要在回调方法里面调用以上方法。
使用
CountTimer
1 2 3 4 5 6 7 8
| new CountTimer(100) {
@Override public void onTick(long millisFly) { vCountSwitcher.setText((millisFly) + ""); Log.d("onTick", millisFly + ""); } };
|
CountDownTimer
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| new CountDownTimer(100) {
@Override public void onTick(long millisUntilFinished) { 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 同时管理多个定时任务
创建多个任务:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| MultiCountTimer multiCountTimer = new MultiCountTimer(10); multiCountTimer.registerTask(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();
|
取消任务:
1 2 3
| multiCountTimer.cancel(2); 或者 multiCountTimer.cancelAll();
|
截图
参考自 Android SDK 中的 CountDownTimer