发布网友 发布时间:2022-04-22 05:21
共1个回答
热心网友 时间:2023-08-16 08:01
线程中:
Message msg = Message.obtain();
msg.obj = result1; //从这里把你想传递的数据放进去就行了
handler.sendMessage(msg);
线程外:
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
String getResult1=(String)msg.obj;
}
};
追问msg.obj和msg.what,他们都是用来干啥的?在什么情况下用到他们呢?
还有一个问题,我见别的文档里在获取msg对象的时候是这样的,
Message childMsg = mChildHandler.obtainMessage();
他调用子线程的Handler对象的obtainMessage方法是什么意思?和你的这个获取msg的方法有什么区别?
追答msg.ob使用来放对象的,这个对象可以使任何类型
msg.what只能放数字(作用可以使用来做if判断)
用过Handler的人都知道,Message有两种获取方法
Message msg = new Message();
或者
Message msg = handler.obtainMessage();
这两种方法的区别是,前者是new的,需要开辟内存空间;后取者是从global Message pool中,性能消耗相对少;