同一个类中的主线程与子线程的通信
在 Android 中用 Handler 来实现线程间的通信
Handle机制
- Looper 循环队列 不断重复接受,踢出消息
- 一个消息中,包括处理的 Handler 对象和消息内容
- Handler 与 UI 是同一个线程,所以在用户线程中完成计算之后,可以通过向消息队列中加入一个消息,通知 Handler 去更改UI
更新UI线程的方式
- post
- handlerMessage 方法。
子线程:通过 sendMessage 方法,将消息发送到队列中。
主线程:重写 handlerMessage 方法,读取消息队列中的 Message ,根据信息更新UI (Handler 在主线程定义)
private Handler handler;
handler = new Handler() {
public void handleMessage(Message msg) {
textView.setText(内容.obj);
}
};
//在子线程中
public void run() {
handler.sendMessage(handler.obtainMessage(内容的长度,内容));//传递消息中的数据
}