安卓中的消息机制

   1、在主线程中创建handler
    private Handler handler = new Handler(){

        //接收消息并处理消息
        @Override
        public void handleMessage(Message msg) {
            // TODO Auto-generated method stub
            super.handleMessage(msg);
        }

    };

    2、在子线程中得到handler的引用,并发送消息给主线程

      Message msg = new Message();
      msg.obj = bm;
      handler.sendMessage(msg);
    3、在主线程中修改UI
        public void handleMessage(Message msg) {
            // TODO Auto-generated method stub
            super.handleMessage(msg);
            Bitmap bm = (Bitmap) msg.obj;

            iv.setImageBitmap(bm);
        }
  • 消息处理机制原理

    所有使用UI界面的操作系统,后台都运行着一个死循环,在不停的监听和接收用户发出的指令,一旦接收指令就立即执行。

  • Looper Message Handler三者之间的关系:(重点)

    当我们的Android应用程序的进程一创建的时候,系统就给这个进程提供了一个Looper,Looper是一个死循环, 它内部维护了一个消息队列,Loop不停地从消息队列中取消息(Message),取到消息就发送给了Handler,最后Handler根据接收到的消息去修改UI。

  • 消息处理常用的API:

    //第一个API runOnUiThread

    //第二个API handler.postDelayed

    //第三个API //handler.postAtTime


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值