每个应用中都有多个子线程,而子线程不能够更新UI,所以使用handler来进行协助更新UI
在应用中又有MessageQueue来存放很多个Message,再通过handler吧子线程发来的消息放入MessageQueue中。
其中MessageQueue由looper循环器中的loop()方法来进行死循环遍历。
但是每开启一个应用就会开启一个java虚拟机,但是怎么能够让looper知道哪个messeage是哪一个应用中的呢?
looper中有threadLocal类,将每个应用的主线程中存放的Message与当前的主线程绑定起来,从而确保了每个应用拿到的message是关于自己的应用的message消息。
handler机制
最新推荐文章于 2020-05-02 22:04:06 发布