handler机制的原理

Handler主要用于异步消息的处理:当发出一个消息之后,首先进入一个消息队列,发送消息的函数即刻返回,而另外一个部分在消息队列中逐一将消息取出,然后对消息进行处理,也就是发送消息和接收消息不是同步的处理。 这种机制通常用来处理相对耗时比较长的操作。

Handler

  • 01

    Looper: 一个线程可以产生一个Looper对象,由它来管理此线程里的MessageQueue(消息队列)。

  • 02

    Handler: 你可以构造Handler对象来与Looper沟通,以便push新消息到MessageQueue里;或者接收Looper从Message Queue取出)所送来的消息。

  • 03

    Message Queue(消息队列):用来存放线程放入的消息。

  • 04

    线程:UIthread 通常就是main thread,而Android启动程序时会替它建立一个MessageQueue。

    Handler创建消息

    • 01

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

      Handler发送消息

      • 01

        UI主线程初始化第一个Handler时会通过ThreadLocal创建一个Looper,该Looper与UI主线程一一对应。使用ThreadLocal的目的是保证每一个线程只创建唯一一个Looper。之后其他Handler初始化的时候直接获取第一个Handler创建的Looper。Looper初始化的时候会创建一个消息队列MessageQueue。至此,主线程、消息循环、消息队列之间的关系是1:1:1。

        Handler处理消息

        • 01

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

        (0)

        相关推荐

        • 清理无用的字体加快Win7系统的开机速度

          如何加快Windows 7系统的开机速度一直都是大家热议的问题,网络中流传的方法也很多,本站为大家整理了一些加快Windows 7系统的开机速度的方法,在接下去的几天中,将陆续分期发布,本专题包括序章 ...

        • 通过清理系统字体实现windows7系统开机加速

          如何加快Windows 7系统的开机速度一直都是大家热议的问题,网络中流传的方法也很多,本站为大家整理了一些加快Windows 7系统的开机速度的方法,在接下去的几天中,将陆续分期发布,本专题包括序章 ...

        • tvos电视操作系统介绍以及下载

          tvos电视操作系统1.0正式发布,系统新增信息安全模块,可加强用户的信息安全保障,同时在市场化还可对电视机上的应用进行可管可控,任何应用安装到电视机都可被广电总局监测调控,往后诸如网络直播软件可 ...

        • 如何清理Windows 7字体加快开机加速

          非常熟悉优化的老手肯定清楚,这个最容易被人忽略的地方,竟然是一个很关键的地方。越危险的地方越安全?在前面开机机制和原理的最后,我们清楚系统在开机的时候,会自动扫描加载当前系统文件夹下字体文件夹内的所有 ...

        • 清理无用的字体实现win7开机加速

          如何加快Windows 7系统的开机速度一直都是大家热议的问题,网络中流传的方法也很多,本站为大家整理了一些加快Windows 7系统的开机速度的方法,在接下去的几天中,将陆续分期发布,本专题包括序章 ...

        • 自媒体作品被减少推荐怎么办(做自媒体没有播放量怎么办)

          众所周知,自媒体这个行业已经随着时代的进步愈发变得成熟,自媒体人也几经进入到千家万户,在生活中很普遍了.有一个现象也是广大自媒体人非常关心的问题,那就是很多自媒体人在发表作品后常常会发现自己的作品在推 ...

        • 笔记本电脑如何有效延长使用寿命?

          笔记本电脑的使用现在已经基本普及,虽然笔记本更新换代比较快,但是也不能说几年就换一次,所以笔记本使用寿命的延长仍然是广大数码爱好者经常要面对的话题.你的爱机就像你的朋友,只有悉心照料它才能陪伴你更久不 ...

        • 网络营销师主要具体做什么

          网络营销师又叫做网络营销工程师是指通过工信部"网络营销学院"项目组培训唯一认证通过,其职责为将互联网技术与市场营销相结合,通过各种技术手段,迅速提高网站综合排名和访问量,为企业提供 ...

        • 信号量如何解决进程的同步和互斥问题

          信号量如何解决进程的同步和互斥问题 操作方法 01 首先是进程间的两种关系:同步和互斥.所谓同步就是把异步环境下的一组并发进程,因直接制约而互相发送消息二进行互相合作.互相等待,使得各进程按一定的速度 ...