handler
线程间进行消息通信,子线程通知主线程更新UI(主要用途)
handler涉及到的主要类
ThreadLocal,Looper, MessageQueue
有几个handler,几个looper,几个messageQueue
多个handler
一个looper ,是通过ThreadLocal来进行管理的, 每个线程只会有一个looper
一个messageQueue ,一般说到的都是消息队列, 但是其内部数据结构采用的是单链表的形式,因为要频繁的插入,读取,删除。用链表的话性能会好
handler的工作机制?
也就是handler的消息循环,handler负责 发送和处理消息; looper负责消息的循环; messageQueue负责存储消息
handler在接收消息时,如何保证主线程不会出现ANR?
这篇博客讲解的很到位
https://blog.csdn.net/qq_46269365/article/details/120814407
handler避免内存泄露?
https://blog.csdn.net/cpcpcp123/article/details/122000274