程序员

Android消息机制及其原理

2018-10-27  本文已影响0人  天真的小罗罗

Android消息机制及其原理

当Thread生成时会产生一个looper来进行通信,looper同时创建一个messagequeue来进行消息的处理和分发,handle push消息到thread,收到消息后looper启动loop方法,messagequeue进入循环,处理消息最后发送给handle

Handle的原理

andriod提供了Handler和Looper来满足线程间的通信。Handler先进先出原则。Looper类用来管理特定线程内对象之间的消息交换

MessageQueue

Looper

Handler

Thread


消息队列分发算法源码

//消息的存放
boolean enqueueMessage(Message msg, long when) {
    synchronized (this) {
        msg.when = when;
        Message p = mMessages;   
        if (p == null || when == 0 || when < p.when){
            msg.next = p;
            mMessages = msg;     
        } else {
            Message prev;
            for (;;) {           
                prev = p;
                p = p.next;
                if (p == null || when < p.when) {
                    break;
                }
            }
            msg.next = p; 
            prev.next = msg;
        }
    }
    return true;
}
上一篇下一篇

猜你喜欢

热点阅读