Android 定时任务

基于Handler的Android定时器与倒计时器

源码地址:Github AndroidTimer

特性

支持操作 :

  1. start
  2. pause
  3. resume
  4. cancel

注意

以上方法是同步方法,请不要在回调方法里面调用以上方法。

使用

CountTimer

1
2
3
4
5
6
7
8
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

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) { // 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 同时管理多个定时任务

创建多个任务:

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();

截图

timer

参考自 Android SDK 中的 CountDownTimer