Android的计时器与Java的有点不同,需要配套TimerTask使用,基本的用法如下:
Handler handler = new Handler() {
// 定义处理信息的方法
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
//处理代码
break;
}
super.handleMessage(msg);
}
};
TimerTask timerTask = new TimerTask() {
@Override
public void run() {
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}
};
// new一个计时器实例
Timer timer = new Timer();
// new一个计时器任务的实例,并重写其run方法,定义触发的动作
// 设定计时器的任务以及时间
timer.schedule(welcomeTask, 1500);
Timer有个Cancel的方法,一旦调用,之后再schedule任务就会报错.同样,TimerTask也可以取消,但当Timer计时完毕触发调用该任务时就会报错说,该任务已取消!
所以要实现循环计时的动作,可以用以下的方法:
private Handler handler = new Handler() {
// 定义处理信息的方法
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
//处理代码
timer.cancel();
break;
}
super.handleMessage(msg);
}
};;
private Timer timer =null;
private class MyTimeTask extends TimerTask{
@Override
public void run() {
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}
}
//某处调用timer*************************************************************
timer = new Timer(); //计时任务开始
timer.schedule(new MyTimeTask(), 2000);