android message对象的问题

发布网友 发布时间: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中,性能消耗相对少;

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com