android怎么使用Handler进行变量交互,举个例子
时间: 2024-05-13 16:20:24 浏览: 54
:可以通过以下步骤使用Handler进行变量交互:
1. 创建一个Handler对象
```
Handler mHandler = new Handler();
```
2. 在子线程中通过Handler对象发送消息(包含要传递的变量)到主线程
```
Message message = mHandler.obtainMessage();
Bundle bundle = new Bundle();
bundle.putString("key", "value"); //添加变量信息
message.setData(bundle);
mHandler.sendMessage(message);
```
3. 在主线程中使用Handler对象接收消息,并获取传递过来的变量
```
mHandler = new Handler(){
@Override
public void handleMessage(Message msg){
super.handleMessage(msg);
String value = msg.getData().getString("key");
//使用传递过来的变量
}
};
```
举例说明: 假设在子线程中需要传递一个字符串变量到主线程,可以通过如下代码实现:
```
new Thread(new Runnable() {
@Override
public void run() {
Message message = mHandler.obtainMessage();
Bundle bundle = new Bundle();
bundle.putString("str", "Hello from sub-thread!");
message.setData(bundle);
mHandler.sendMessage(message);
}
}).start();
```
在主线程中接收消息并获取传递过来的字符串变量,可以通过如下代码实现:
```
mHandler = new Handler(){
@Override
public void handleMessage(Message msg){
super.handleMessage(msg);
String str = msg.getData().getString("str");
Log.d(TAG, "Received message: " + str);
}
};
```
阅读全文