Android的消息机制
来源:互联网 发布:淘宝元素周期表验证码 编辑:程序博客网 时间:2024/06/05 17:25
一、Android的消息机制:
1、概念:Handler的运行机制以及Handler所附带的MessageQueue和Looper的工作过程。
1)、Handler:
a、用于将一个任务切换到一个目标线程去执行,它的运行依赖底层的MessageQueue和Looper支撑。内部的Looper负责从MessageQueue中查找消息,有的话执行,没有则一直等待。
b、在创建时,通过Looper的ThreadLocal(可以在不同的线程中互不干扰的存储并提供数据)获取到当前线程的Looper,然后构造出消息循环系统。线程默认没有Looper,需要手动创建。
2)、ThreadLocal:
a、线程内部的一个数据存储类,通过它可以在指定线程中存储数据,存储的数据也只能在指定线程内获取到。
b、可以理解为以线程作为数据的作用域,并且不同的线程具有不同的数据副本。还可用于复杂逻辑下的对象传递,可以使用ThreadLocal将对象作为线程内的全局对象而存在,使用get方法即可获取到。
3)、MessageQueue:
4)、Looper:
a、使用:线程中创建并开启消息循环
<span style="white-space:pre"></span>Looper.prepare();<span style="white-space:pre"></span>Handler handler=new Handler();<span style="white-space:pre"></span>Looper.loop();
b、主线程Looper的创建和获取:
c、子线程中需要退出Looper
二、主线程的消息循环
0 0
- Android的消息机制
- Android的消息机制
- Android的消息机制
- Android的消息机制
- Android的消息机制
- Android的消息机制
- Android 的消息机制
- Android的消息机制
- Android 的消息机制
- Android的消息机制
- Android的消息机制
- Android的消息机制
- Android的消息机制
- Android 的消息机制
- Android的消息机制
- Android的消息机制
- android的消息机制
- Android的消息机制
- java 电话号码归属地查询
- 从ArrayList看Java泛型
- java对象流与序列化
- 单链表面试题系列之带环链表的入口点
- 我看过得最易懂的一段AOP的解释
- Android的消息机制
- android控件颜色
- iOS组件化实践方案-LDBusMediator炼就
- ROS_Kinetic_16 ubuntu中安装使用Matlab和ROS
- WPF Step By Step 控件介绍
- AngularJs指令
- 理解LSTM网络
- c中##和#的意义和用处
- Java RandomAccessFile与MappedByteBuffer