Android 定时器 三种方法

来源:互联网 发布:excel怎么数据透视 编辑:程序博客网 时间:2024/04/29 09:33

抄个笔记,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); //执行的时间毫秒


//发送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; 
}


0 0