Android 消息机制 - Handler 实现原理深入剖析

Android 的消息机制Handler,是在开发过程中都会用到的,它可以轻松的从子线程切换到主线程,大部分的时候我们将Handler会用在更新UI的操作.那么Handler是如何做到不同线程通信的呢? 如何切换线程的呢?本篇文章带领大家来轻松的实现一个Handler,并深入的去了解Handler的实现原理
在讲解之前,我们先来了解一下Handler的工作过程,至于如何使用Handler,这里我就不在复述了,只要做过Android开发我相信大家都会使用.

Handler的工作过程

Handler发送消息是通过Looper以及MessageQueue协同工作的.
Looper的初始化:在应用启动时ActivityThread会创建一个Looper.prepare(),并调用Looper.looper()方法无限循环等待是否有新的消息.
发送消息:通过Handler的send方法发送消息,会调用MessageQueue.enqueue()方法,此时消息(Message)会被加入MessageQueue消息队列中,已知在Looper初始化是,Looper.looper()一直在监听是否存在新的消息,此时Looper发现有新消息到来,就会处理该消息,最终会调用Handler.handleMessage()方法,Looper是运行在创建Handler的线程中的,handleMessage一定在创建Handler的线程中去执行.

阅读全文: https://www.jakeprim.cn/2019/01/28/handler/

猜你喜欢

转载自blog.csdn.net/weixin_34167043/article/details/86861346
今日推荐