Handler机制是Android开发学习中最常见、最基础的机制。所以学习和了解Handler相关的知识是很必要的。
首先,什么是Handler ?直接看官方解释:
“A Handler allows you to send and process Message and Runnable objects associated with a thread’s MessageQueue ”
简单来说:Handler是一个线程的管家,职责是发送任务给线程处理。
OK,话不多说,直接看下Handler是如何做到的。
要分析Handler,首先要知道几个对象:
Looper :循环器,不断的从MessageQueue中获取Message对象。 MessageQueue :存放Message的队列,保存在线程里。 Message:发给线程处理的一个任务。一个线程对应一个Looper、一个MessageQueue。
所以Handler的机制是:
Handler发送Message到MessageQueue中。 Looper从MessageQueue取出Message Message扔给Handler由对应的处理者处理。因为2、3两步操作都发生在Looper所在的线程,所以达到了发送任务给线程。
具体细节可以翻阅源码查看,我这里就不多分析。
值得一提的是:
Looper是保存在线程的ThreadLocal成员里。 UI线程的Looper对象是Android系统创建的。 自己创建Looper对象的时候需要注意触发方法:
如对本文有疑问, 点击进行留言回复!!
Error running app: Default Activity Not Found
如何用HMS Nearby Service给自己的App添加近距离数据传输功能
BlockChain:2020年7月10日世界人工智能大会WAIC《链智未来 赋能产业区块链主题论坛》(四)
网友评论