1、CountDownTimer
CountDownTimer countDownTimer =newCountDownTimer(30000,
1000) {
// 30000(30秒)倒计时,每1000(1秒)调用一下onTick();
@Override
public
void
onTick(
long
millisUntilFinished) {
System.
out.println(
"到结束还剩下:"
+ millisUntilFinished);
}
@Override
public
void
onFinish() {
long
time = System.
currentTimeMillis() -
currentTimeMillis;
System.
out.println(
"已结束:用时="
+ time);
}
};
countDownTimer.start();
// 开始执行
countDownTimer.cancel();
// 取消
2、Timer和TimerTask
Timer timer =
new
Timer();
TimerTask
timerTask
= new
TimerTask() {
@Override
public
void
run() {
}
};
// 常用于轮询
timer
.schedule(timerTask
, 5000, 2000);// 5000(5秒)后,开始执行第一次run方法,此后每隔2000秒调用一次
// 常用于延迟操作
timer.schedule(
timerTask, 5000);// 5000(5秒)后,只开始执行一次run方法
// 取消定时
timer.cancel();
// 清理
timer.purge();
// 取消任务
timerTask.cancel();
// 任务已执行的时间
timerTask.scheduledExecutionTime();
3、Handler
//不会阻塞主线程
handler
=
new
Handler() {
@Override
public
void
handleMessag
e(Message msg) {
super.handleMessage(msg);
switch
(msg.
what) {
case
0:
// 执行的方法
execute();
handler.sendEmptyMessageDelayed(0, 1000);//
执行时间间隔
break;
}
}
// 执行的方法
private
void
execute() {
}
};
handler.sendEmptyMessageDelayed(0, 30000);
// 延迟多长时间执行
4、view.postDelayed
View view =
null;
view.postDelayed(new
Runnable() {
@Override
public
void
run() {
}
}, 10000);