hander机制

Hander机制,是我们在编程过程中,与应用程序之间进行交互用到最多的机制,当我们对应用程序进行UI操作的时候,我们不能在子线程(非UI线程)中直接对ui进行操作,这时候我们就需要用到handler,handler的原理是一个发送消息,处理消息的过程。

Android Handler机制 :每一个消息都需要被指定的Handler处理,通过Handler创建消息便可以完成此功能。Handler创建消息时首先查询消息池中是否有消息存在,如果有直接从消息池中取得,如果没有则重新初始化一个消息实例。使用消息池的好处是:消息不被使用时,并不作为垃圾回收,而是放入消息池,可供下次Handler创建消息时使用。消息池提高了消息对象的复用,减少系统垃圾回收的次数。

一个Thead中可以建立多个Hander,通过msg.target保证MessageQueue中的每个msg交由发送message的handler进行处理  ,但是每个线程中最多只有一个Looper,肯定也就一个MessageQuque。

Handler的具体用法有两种:
   a、1、在UI线程中创建handler
         2、把UI线程中创建好的handler的内存地址引用传递给子线程
         3、在子线程中的run方法中,进行handler消息池中消息的获取。
         4、封装消息内容
         5、通过handler发送该消息。
         6、在handler中接收该消息,进行消息处理。
      (PS:以上所有的handler,指的都是UI线程中创建的handler)
   b、1、在UI线程中获取Looper
         2、把UI线程中获取的Looper传递给子线程
         3、在子线程的run方法中通过looper的传递实例化handler
       (该handler即为处理UI控件的handler)
         4、直接复写该handler的handleMessage方法,完成UI更新。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值