在android开发过程中相信屌丝程序员们都用过Handler来处理一些逻辑任务,比如发送延迟消息处理业务等逻辑,我们常用的图片加载缓存库ImageLoader和Picasso等内部也是通过Handler来最终有后台加载线程切换到主线程(UI线程)来更新页面的,今天就趁着离职有点儿时间就抽空的分析了下它的一点源码,在此总结出来。闲言少叙,书归正传!

先来谈谈Looper:

Looper从源码上来看就是一个普通的Java类,它在消息机制中,顾名思义,就是一个消息循环的角色。下面让我们看看Looper的构造器都做了什么:

//(每个Looper对象的)消息队列,也就是说每个Looper对象都持有自己的消息队列final MessageQueue mQueue;
//(每个Looper线程关联的)当前线程
final Thread mThread;
private Looper(boolean quitAllowed) {//初始化当前Looper对象的消息队列mQueue = new MessageQueue(quitAllowed);mThread = Thread.currentThread();//获取当前线程}

从上面的代码中我们可以得出如下简单的结论:
a. <每个Looper对象都有自己的消息队列MessageQueue!
b. 每个Looper对象都和当前线程或者说创建Looper的线程相关联。
那么问题来了,当前线程是如何跟Looper对象想关联的呢?如果你读过Looper源码,从代码注释中你可以看到下面一个代码:

<

android消息处理机制原理解析相关推荐

  1. android Handler机制原理解析(一篇就够,包你形象而深刻)

    首先,我将Handler相关的原理机制形象的描述为以下情景: Handler:快递员(属于某个快递公司的职员) Message:包裹(可以放置很多东西的箱子) MessageQueue:快递分拣中心( ...

  2. Android 签名机制原理解析和V1 、V2签名区别

    一.什么是签名? 是确保消息来源的真实性 是确保消息不会被第三方篡改 1.基本信息基础必备 1.1 消息摘要 消息摘要,又称数字摘要 或 数字指纹.  简单来说,消息摘要就是在消息数据上,执行一个单向 ...

  3. Android 插件化原理解析——Hook机制之AMSPMS

    在前面的文章中我们介绍了DroidPlugin的Hook机制,也就是代理方式和Binder Hook:插件框架通过AOP实现了插件使用和开发的透明性.在讲述DroidPlugin如何实现四大组件的插件 ...

  4. 覆盖式理解Android 消息处理机制(带源码解析)

    转载自:https://www.jianshu.com/p/02962454adf7 Android 消息处理机制估计都被写烂了,但是依然还是要写一下,因为Android应用程序是通过消息来驱动的,A ...

  5. Android消息处理机制

    Google参考了Windows的消息处理机制,在Android系统中实现了一套类似的消息处理机制.学习Android的消息处理机制,有几个概念(类)必须了解: 1.       Message 消息 ...

  6. Android 插件化原理解析——Activity生命周期管理

    之前的 Android插件化原理解析 系列文章揭开了Hook机制的神秘面纱,现在我们手握倚天屠龙,那么如何通过这种技术完成插件化方案呢?具体来说,插件中的Activity,Service等组件如何在A ...

  7. android r.java 原理,深入理解Android消息处理系统原理

    Android应用程序也是消息驱动的,按道理来说也应该提供消息循环机制.实际上谷歌参考了Windows的消息循环机制,也在Android系统中实现了消息循环机制. Android通过Looper.Ha ...

  8. Android 消息处理机制(Looper、Handler、MessageQueue,Message)

    原文:[简书原文](http://www.jianshu.com/p/02962454adf7)> 另外本人自己开了开了个人博客 fanmingyi.cn 不定时更新[跳转到个人博客](http ...

  9. Android 广播实现原理解析

    Android 广播实现原理解析 前言 Android四大组件中的BroadcastReceiver,在我们实际工作中被频繁的使用,我们可以利用系统的开机广播,网络状态改变的广播等等实现我们的业务逻辑 ...

  10. AsyncTask机制原理解析

    AsyncTask机制原理解析 Android为我们提供了2种方便的异步处理方案,Handler和AsyncTask,两种方式适合的场景网上一搜就知道了,但是为什么呢?这篇分析将为你揭晓答案.前面分析 ...

最新文章

  1. Java 源代码和 C 源代码的运行区别
  2. 78.Zabbix监控Nginx
  3. HTML结构化CSS网页布局入门指南
  4. ASP.NET 2.0 中改进的缓存功能
  5. 从0搭建一个Springboot+vue前后端分离项目(四)利用Element框架搭建页面主体部分表格与侧边栏
  6. 数论与数学专题练习(一)(201802~201805)
  7. 2009年美国大学计算机专业排名
  8. Elasticsearch在后台启动(Linux)
  9. android 判断手机为小米
  10. Python解惑:整数比较
  11. day4----函数-闭包-装饰器
  12. 如何将 Azure 上的 Ubuntu 19.10 服务器升级到 20.04
  13. 编写函数实现员工信息录入和输出_Excel---最牛的员工档案模板,非常智能化
  14. Java语言词法分析器
  15. 关于ASP.NET MVC开发设计中出现的问题与解决方案汇总 【持续更新】
  16. Mac中必不可少的软件——Tuxera NTFS
  17. clickhouse性能优化实践
  18. 精易模块保存html文档,易模块文件不存在
  19. 想做游戏测试,你一定要知道这几点!
  20. Elastic Searchable snapshot功能初探 三 (frozen tier)

热门文章

  1. 计算机原理及应用课程,课程描述
  2. mac android 调试快捷键,Mac Android Studio快捷键整理_IOS_脚本之家
  3. SQL:where 和 having 的区别
  4. 实战Python:利用Python和PyQt5实现瑞幸咖啡点餐系统
  5. 获取ftp服务器的系统编码,ftp服务器编码问题
  6. Unity Android 使用UnityWebRequest Post 数据后,没有获得服务器返回的数据
  7. OrzFAng系列–树 解题报告
  8. 进程和cpu的相关知识和简单调优方案
  9. 浅谈 iOS设计之多视图—模态视图的基本操作
  10. wordpress模板