子线程和主线程不在一个类里怎么通过handler传递参数
时间: 2023-10-22 09:03:36 浏览: 120
17.Handler消息传递机制
您好,关于您所提出的问题,可以通过以下步骤实现子线程向主线程发送消息:
1. 在主线程中创建Handler对象,并在其中实现handleMessage()方法;
2. 在子线程中调用Handler对象的sendMessage()方法,将需要传递的参数打包成Message对象,并发送给主线程;
3. 主线程接收到消息后,在Handler对象的handleMessage()方法中解析Message对象中携带的参数,实现参数传递。
具体实现代码如下:
在主线程中创建Handler对象:
```
Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
// 解析Message对象中携带的参数,并进行相关操作
}
};
```
在子线程中使用sendMessage()方法发送消息:
```
Message msg = mHandler.obtainMessage();
msg.obj = "需要传递的参数";
mHandler.sendMessage(msg);
```
注意,在发送消息之前需要先调用mHandler.obtainMessage()方法获取一个Message对象,并将需要传递的参数设置到Message对象的obj属性中。
这样,就可以实现子线程向主线程发送消息并传递参数的功能了。希望对您有所帮助!
阅读全文