博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android消息处理机制简单分析(Handler,Looper,MessageQueue,Message)
阅读量:6560 次
发布时间:2019-06-24

本文共 739 字,大约阅读时间需要 2 分钟。

如果本文帮助到你,本人不胜荣幸,如果浪费了你的时间,本人深感抱歉。 希望用最简单的大白话来帮助那些像我一样的人。如果有什么错误,请一定指出,以免误导大家、也误导我。 本文来自: 感谢您的关注。

首先说明:本文不会讲的太多,只是简单分析了一下,网上关于 Android消息处理 的介绍已经非常多了,而且都讲的挺好的,就不重复的制造轮子了。 我呢,也是看了看源码,然后在此记录,便于以后回顾。亲自去看一看,会比看别人的文章好很多倍,记忆也会更加深刻。即使忘了,回忆起来也会非常快。

分享一篇文章: 只不过这篇文章是2011年9月写的,有点早。 去年我也是把这篇文章看了好多遍的。


对于 Message,MessageQueue,Looper ,Handler 的简单分析, 如下图:

昨天有人问了个问题:在子线程中new Handler()会怎么样?

下图就是答案,因为在子线程中,没有 Looper ,必须手动调用 Looper.prepare(); 之后,才能把本线程升级为 Looper线程。

也正是这个问题,验证了第一张图里面的结论,真正做事的人,是 Message,MessageQueue,Looper 这帮人,Handler 只是更方便的管理他们。 而 Looper 就是核心类。

那为什么在主线程中我们都没有手动调用 Looper.prepare(); 也能使用 Handler 呢?

看下面这张图,知道答案了吧?

*** 收藏一些好文章: [Android消息机制的原理及源码解析](http://www.jianshu.com/p/f10cff5b4c25)

转载于:https://juejin.im/post/5be10c56518825170a6d159b

你可能感兴趣的文章
nodejs安装记录
查看>>
Android2.2 API 中文文档系列(9) —— ZoomButton
查看>>
Midletinfo-探索手机javaME系统信息的实用工具
查看>>
大数据、云计算、移动应用、业务流程管理、软件持续交付、社交商务
查看>>
Rhel Linux multipath + OpenfIler raid iscsi
查看>>
golang: 类型转换和类型断言
查看>>
golang: Martini之inject源码分析
查看>>
主机间信任关系建立之ssh+sshpass批量化部署
查看>>
STM32 IAP
查看>>
springboot + shiro 权限注解、统一异常处理、请求乱码解决
查看>>
【No.4 Ionic】修改 cordova 插件
查看>>
C# JSON码的生成与解析
查看>>
LAMP一键安装脚本
查看>>
scn(系统改变号)信息与恢复
查看>>
LVM浅析
查看>>
Centos5 ntop 安装
查看>>
我的友情链接
查看>>
周炯oracle学习资源
查看>>
基于HTML5 WebGL实现3D飞机叶轮旋转
查看>>
DG出现ARCH ERROR的错误解决方式
查看>>