1、CountDownTimer
CountDownTimer countDownTimer =
new
CountDownTimer(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);