Handler消息机制原理

来源:互联网 发布:佳能mg6280清零软件 编辑:程序博客网 时间:2024/05/21 22:59

1.什么是Handler

   用于管理多线程对UI的操作

2.为什么会出现Handler   

   1)只允许主线程对UI操作,UI线程是非线程完全的。(非线程安全,多线程操作同一代码,会产生不确定的结果)为了避免多个线程同时操作UI所造成的线程安全问题。

3.Handler功能

   1)在新启动的线程中发送消息
    2)在主线程中获取,处理消息

     如何处理同步问题:在主线程和开启的新线程中使用MessageQueue队列,开启的新线程发送的消息时把消息发送到与之关联的MessageQueue,然后主线程的Handler被调用,从MessageQueue中取出相应的消息处理。


4.Handler实现机制

读取消息使用到的方法:
          void  handleMessage(Message msg),进程间重写这个方法处理消息;
          final boolean hasMessage(int what),检查消息队列中是否包含what属性为指定值的消息。
          final boolean hasMessage(int what,Object object);
          Message obtainMessage();获取消息,可被多种方式重载

5.深入理解Handler工作机制

     Looper:每个线程对应一个Looper,负责管理MessageQueue,将消息取出交给Handler进行处理。
     MessageQueue: 负责管理Message,接受Handler发送过来的Message.














0 0
原创粉丝点击