Handler类、异步线程和Message类的参数传递

本文详细介绍了如何声明HandlerThread对象并利用Looper处理消息队列,通过创建MyHandler类并继承自Handler类,实现简单及大量数据的高效传输。通过实例展示了消息对象的创建、数据封装与发送过程,提供了深入理解Android消息机制的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  声明HandlerThread对象,实现了使用Looper来处理消息队列的功能

        //这个类由Android操作系统提供
    HandlerThread handlerThread = new HandlerThread("handler_Thread");
    handlerThread.start();
    //当前的myHandler对象使用looper线程处理消息
    MyHandler myHandler = new MyHandler(handlerThread.getLooper());
    Message msg = myHandler.obtainMessage();
    //简单数据传输
    msg.obj = "zhanglei";
    //大量数据传输
    Bundle b = new Bundle();
    b.putInt("age",23);
    b.putString("name", "zhanglei");
    msg.setData(b);
    //将msg发送到目标对象,所谓的目标对象就是生成该msg对象的Handler对象
    msg.sendToTarget();

  声明MyHandler类继承自Handler类:

    class MyHandler extends Handler{
    public MyHandler(){

    }
    public MyHandler(Looper looper){
      super(looper);
    }
    //每当myHandler对象执行sendMessage方法时触发handleMessage方法
      @Override
      public void handleMessage(Message msg) {
        // TODO Auto-generated method stub
        super.handleMessage(msg);
        String str = (String)msg.obj; //将msg中的obj中的值取出
        Bundle b = msg.getData();
        int age = b.getInt("age");
        String name = b.getString("name");
      }
    }

转载于:https://www.cnblogs.com/zhanglei93/p/4658483.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值