Android定时器,更新数据
做个笔记,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;
}
---------------------------------------------------------------------------------------------------