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一次。