在需要处理消息队列时,如果使用同一线程有时候会导致主线程阻塞,而很多情况下主线程不允许阻塞,那么我们可以使用HandlerThread创建一个线程来处理消息而不去使用主线程,HandlerThread继承于Thread,它本质就是个Thread。它比Thread多一个Looper成员变量。这个Looper是对消息队列以及队列处理逻辑的封装。如下实例:
public class mActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mactivity);
mThread = new HandlerThread("mmThread"); //创建一个名为mmThread得HandlerThread
mThread.start();
mHandler = new MyHandler(mThread.getLooper()); //设置Handler消息使用mThread线程来处理
}
}
private class MyHandler extends Handler{
public MyHandler(Looper looper){
super(looper);
}
@Override
public void handleMessage(Message msg) {//处理Handler消息
Log.d("收到的消息是:",msg.obj.toString());
}
}
}
阅读(1879) | 评论(0) | 转发(0) |