標籤:android style color os strong 資料
做個筆記,Android中常用的定時器,用於定時更新ui資料等。
1.Handler + Runnable定時器
private Handler mHandler;
private Runnable mRunnable;
mHandler = new Handler();
mRunnable = new Runnable() {
public void run () {
//更新資料的方法
update();
}
};
//定時啟動線程(執行的線程,時間毫秒)
mHandler.postDelayed(mRunnable,4000);
//移除Handler中的線程
mHandler.removeCallbacks(mRunnable);
==================================================
2.Timer +TimerTask 定時器
Timertimer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
// 執行的方法
sendMSG();
}
}, 4000); //執行的時間毫秒
3.//發送message訊息
void sendMSG() {
//handler message訊息
Message message = new Message();
message.what = MSG;
mHandler.sendMessage(message);
}
------Handler接收訊息機制------
class MyHandlerextends Handler {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
if (msg.what ==MSG) {
//更新資料的方法
update();
}
}
};
4.每隔一段時間執行的定時器
private Timer timer;
private Handler mShowHandler = new Handler();
//啟動定時器
if (timer == null) {
timer = new Timer();
timer.scheduleAtFixedRate(new RefreshTask(), 0, 800); //每800毫秒執行一次
}
//計時器
class RefreshTask extends TimerTask {
@Override
public void run() {
//可在此加入判斷,判定什麼情況執行更新
// if( i=0 ) {
mShowHandler.post(new Runnable() {
@Override
public void run() {
//更新資料方法
update();
}
}
// }
});
//停止計時器
if(timer != null){
timer.cancel();
timer = null;
}
---------------------------------------------------------------------------------------------------