首页 > 程序开发 > 移动开发 > Android >

Android定时器,更新数据

2014-04-29

做个笔记,Android中常用的定时器,用于定时更新ui数据等。 1 Handler & 43; Runnable定时器 private Handler mHandler; private Runnable mRunnable; mHandler = new Handler(); mRunna

做个笔记,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;
}

---------------------------------------------------------------------------------------------------

相关文章
最新文章
热点推荐