Android消息机制之四---Looper,Handler,Message
本博客主要作用是对之前的三篇博客所讲的Message,Handler,Looper进行例子显示。
将普通线程转化为Looper线程;
public class LooperThread extends Thread{
public LooperThread(){
}
@Override
public void run() {
//将当前线程初始化为Looper线程
Looper.prepare();
/*
添加其他处理,如实例化Handler(处理MessageQueue)
*/
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what){
case 0:
System.out.println("Looper Thread:" + msg.arg1);
break;
}
}
};
new Thread(new WorkThread(handler)).start();
//开始循环处理消息
Looper.loop();
}
}
编写Work线程;
public class WorkThread implements Runnable{
private Handler handler = null;
public WorkThread(Handler handler){
this.handler = handler;
System.out.println("work thread start");
}
@Override
public void run() {
for(int i = 0; i < 20; i++){
if(i % 2 == 0){
// Message msg = Message.obtain();
// msg.what = 0;
// msg.arg1 = i;
Message msg = Message.obtain(handler, 0, i, 0);
handler.sendMessage(msg);
} else{
System.out.println("Work Thread:" + i);
}
}
}
}