android主线程给子线程传递对象
时间: 2023-10-18 19:14:55 浏览: 104
android handler理解
4星 · 用户满意度95%
Android主线程可以通过下面的方式将对象传递给子线程:
1. 创建一个Handler对象并将其传递给子线程。在主线程中,可以使用Handler的sendMessage方法将对象传递给子线程。在子线程中,可以使用Handler的handleMessage方法接收传递的对象。
例如,在主线程中创建Handler对象:
```
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
// 处理传递的对象
Object obj = msg.obj;
}
};
```
然后,在主线程中使用sendMessage方法将对象传递给子线程:
```
Message msg = handler.obtainMessage();
msg.obj = myObject;
handler.sendMessage(msg);
```
在子线程中,可以重写Handler的handleMessage方法来接收传递的对象:
```
@Override
public void handleMessage(Message msg) {
// 接收传递的对象
Object obj = msg.obj;
}
```
2. 使用runOnUiThread方法将对象传递给主线程。在子线程中,可以使用Activity的runOnUiThread方法将对象传递给主线程。在主线程中,可以在runOnUiThread方法中接收传递的对象。
例如,在子线程中使用runOnUiThread方法将对象传递给主线程:
```
runOnUiThread(new Runnable() {
@Override
public void run() {
// 接收传递的对象
Object obj = myObject;
}
});
```
在主线程中,可以在runOnUiThread方法中处理接收到的对象。
注意:使用runOnUiThread方法只适用于Activity或Fragment中的子线程,而不能在其他非UI线程中使用。
阅读全文