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
原创粉丝点击