HandlerThread

andlerThread类实现了Looper的循环处理消息的功能
HandlerThread handlerThread = new HandlerTread("handler_thread");
//使用HandlerThread的getLooper方法之前必须先调用start方法
handlerThread.start();
//取出handlerThread中的Looper并绑定到当前的Handler对象中,使得HandlerThread类使用Looper的循环处理消息的功能
MyHandler myHandler = new MyHandler(handlerThread.getLooper());

Message msg = myHandler.obtainMessage();
//message对象发送给生成该message对象的Handler,即发送给myHandler
msg.sendToTarget();

MyHandler 继承Handler

 //当前的handler使用Looper所在的线程处理队列,即把该handler绑定到另外的Looper中
 构造函数(Looper looper){
  super(looper)
 }
 
 实现handlerMessage方法
 
}

到此才真正实现了一步处理消息的功能


Message中传递消息:
1、传递简单的参数
msg.arg1 = "字符串";
msg.sendToTarget();
在handlerMessage中使用
String s = (String)msg.arg1;取出
2、使用Bundler传递数据
Bandler bandler = new Bandler();
bandler.putInt("键值1",int类型数据);
bandler.putString("键值2",String类型数据);
msg.setData(bandler);
msg.sendToTarget();
在handlerMessage中使用
Bundler b = msg.getData();取出Bundler对象
int i = b.getInt("键值1");String s = b.getString("键值2");


你可能感兴趣的:(HandlerThread)