[java] view plaincopyprint?
-
Handler handler = new Handler() {
-
public void handleMessage(Message msg) {
-
// 要做的事情
-
super.handleMessage(msg);
-
}
-
};
2. 新建一个实现Runnable接口的线程类,如下:
[java] view plaincopyprint?
-
public class MyThread implements Runnable {
-
@Override
-
public void run() {
-
// TODO Auto-generated
资料获取→专栏
method stub
-
while (true) {
-
try {
-
Thread.sleep(10000);// 线程暂停10秒,单位毫秒
-
Message message = new Message();
-
message.what = 1;
-
handler.sendMessage(message);// 发送消息
-
} catch (InterruptedException e) {
-
// TODO Auto-generated catch block
-
e.printStackTrace();
-
}
-
}
-
}
-
}
3. 在需要启动线程的地方加入下面语句:
[java] view plaincopyprint?
- new Thread(new MyThread()).start();
4. 启动线程后,线程每10s发送一次消息。
二、采用Handler的postDelayed(Runnable, long)方法,这个实现比较简单一些。
1. 定义一个Handler类
[java] view plaincopyprint?
-
Handler handler=new Handler();
-
Runnable runnable=new Runnable() {
-
@Override
-
public void run() {
-
// TODO Auto-generated method stub
-
//要做的事情
-
handler.postDelayed(this, 2000);
-
}
-
};
2. 启动计时器
[java] view plaincopyprint?
- handler.postDelayed(runnable, 2000);//每两秒执行一次runnable
3. 停止计时器
[java] view plaincopyprint?
- handler.removeCallbacks(runnable);
三、采用Handler与timer及TimerTask结合的方法
1. 定义定时器、定时器任务及Handler句柄
[java] view plaincopyprint?
-
private final Timer timer = new Timer();
-
private TimerTask task;
-
Handler handler = new Handler() {
-
@Override
-
public void handleMessage(Message msg) {
-
// TODO Auto-generated method stub
-
// 要做的事情
-
super.handleMessage(msg);
-
}
-
};
2. 初始化计时器任务
[java] view plaincopyprint?
method stub
-
// 要做的事情
-
super.handleMessage(msg);
-
}
-
};
2. 初始化计时器任务
[java] view plaincopyprint?