Android中定时器主要有3个类,分别是Timer,TimerTask和Handler。也没什么难的,拿个例子看看就好。
private Timer mWaitTime = null;
private TimerTask mWaitTask = null;
private Handler mWaitHandle = null;
if(mWaitTime == null) {
mWaitTime = new Timer();
}
mWaitTask = new TimerTask() {
public void run() {
mWaitHandle.sendEmptyMessage(0);
}
};
mWaitTime.schedule(mWaitTask, 20000); // 20s之后发送
mWaitHandle = new Handler() {
public void handleMessage(Message msg) {//分发消息
super.handleMessage(msg);
if (0 == msg.what ) {
if(mReadyTimer != null) {
mReadyTimer.cancel();
mReadyTimer = null;
}
doing something。。。
}
}
}
};
简单说下这个代码就是过20s之后发送一个消息给handler,handler接到消息后做些事情,然后将定时器结束。所以这里也可以让定时器变成没过一段时间做一个事情。像下面这样。
private Timer mReadyTimer;
private TimerTask mReadyTask;
private Handler mReadyHandler;
private int mRecordReadyTime;
if(mReadyTimer == null) {
mReadyTimer = new Timer();
}
mReadyTask = new TimerTask() {
public void run() {
mReadyHandler.sendEmptyMessage(0);
}
};
mReadyTimer.schedule(mReadyTask,1000);
mReadyHandler = new Handler() {
public void handleMessage(Message msg) {//分发消息
super.handleMessage(msg);
if (0 == msg.what ) {
doing something...
mRecordReadyTime --;
if(mRecordReadyTime < 0) {
if(mReadyTimer != null) {
mReadyTimer.cancel();
mReadyTimer = null;
}
}
}
}
};
显然这里就是没过1s执行doing something一次。