关闭

Android消息机制概述 Handler

标签: android
570人阅读 评论(0) 收藏 举报
分类:

Android消息机制概述
Android 的消息机制主要是指 Handler 的运行机制, Handler 的运行需要MessageQueueLooper 来支撑。MessageQueue是消息队列,就是内部存储了一组消息,以队列的形式对外提供插入和删除的工作。是采用单链表的数据结构来存储消息列表。Looper是消息循环,由于MessageQueue不能处理消息,然而Looper弥补了这一个功能,Looper以无限循环的形式去查找是否有新的消息,如果有的话就处理消息,否则就一直等待着。Looper 有一个特殊的概念,就是ThreadLocal , 可以说是线程池,它的作用是可以在每个线程中存储数据。Handler 创建的时候会采用当前线程的Looper 来构造消息循环系统。这里就使用到了ThreadLocal ,可以在不同的线程中互不干扰的存储并提供数据,通过ThreadLocal 可以轻松获取每个线程的Looper 。线程默认是没有Looper 的,如果需要使用Handler 就必须为线程创建Looper . 然而在主线程,也叫UI 线程,它就是ActivityThread, 在被创建时就会初始化Looper ,这也是在主线程中默认可以使用Handler 的原因。

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:65498次
    • 积分:1200
    • 等级:
    • 排名:千里之外
    • 原创:39篇
    • 转载:3篇
    • 译文:3篇
    • 评论:22条
    文章分类