放大啦资源网 http://www.fangdala.com
当前位置首页 > 百科资料> 正文

handler机制

2023-03-02 10:37:06 暂无评论 百科资料

hand握刻足里袁ler机制,android中提供了一种异步回调机制Handle深始头降额须r,使用它,我们可以在完成一个很长时间的任务后做出相应的通知。

  • 中文名称 handler机制
  • 所属学科 通信

创建消息

  每一个消息都需要被指定的Handler处理,通过Handler创建消息便可以完成此功能。Android消息机制中引入了消息池。Handler创建消息时首先查询消息池来自中是否有消息存在,如果有直接无福规指兰差元守供从消息池中取得,如果没360百科有则重新初始化一个消息实例。使用消息池的好处是:消息不被使用时,并不作为垃圾回收,而是放入消息池,可供下次Handler创建消息时使用。消号坏云息池提高了消息对象的复用,减少系统垃打燃减顾圾回收的次数。消息的创建流程如图所示。

发送消息

  UI主线程初始化第一个Handler时会通过ThreadLocal创建一个Looper,该Looper与UI主线程一一对应。使用ThreadLocal的目的是保证每一个线程只创建唯一一个Looper。之后其他Handler初始化的时候直接获取第一个Handler创建的Looper。Looper初始化

handl华组甚低困兰er发送消息

  的时候会创建一个消息队列MessageQueue。至此,主线程、消息针怀消笑当敌教循环、消息队列之间的关系是1:1:1。Handler、Looper、MessageQueue的初始化流程如图所示:

  Hander持有对UI主线程消息队列Mess降放ageQueue和消沿张息循环Looper的引用,子线程可以通过Handler将消息发送到UI线程的消息我末力完据迅运香山斗叫队列MessageQueue中。

处理消息

handler处理消息

  UI主线程通过Looper循环查询消息队列UI_MQ,当发现有消息存在时会将消息从消息队列中来自取出。首先分析消息,通过消息的参数判断该消息对应的Handler去定斯剧由丰调起,然后将消息分发到指定的Handler进行处理。

  子线程通过Handler、Looper与UI主线程通信的流程如图所示。

猜你喜欢