Android Application类

Android中提供了Application这样一个类。看一下Android官方文档对此类的解释:

Base class for those who need to maintain global application state.
You can provide your own implementation by specifying its name in your AndroidManifest.xml’s tag,
which will cause that class to be instantiated for ou when the process for your application/package is created.

大概意思就是:需要为应用程序提供全局变量,在AndroidManifest.xml中指定所实现的Application子类;

Read More

Android消息机制——Handler的工作原理

Handler的工作主要包含消息的发送和接收的过程。消息的发送可以通过post的一系列方法以及send的一系列方法来实现。post的一系列方法最终是通过send的一系列方法来实现的。

Read More

Android消息机制——消息队列工作原理

消息队列在Android中指的是MessageQueue,MessageQueue主要包含两个操作:插入和独处。读取操作本身会伴随着删除操作,插入和读取对应的方法分别为enqueueMessage和next。其中enqueueMessage的作用是往消息队列中插入一条消息,而next的作用是从消息队列中取出一条消息并将其从消息队列中移除。消息队列内部是通过一个单链表的数据结构来维护消息列表,因为链表在插入和删除上比较有优势。

Read More

Android消息机制——Looper的工作原理

Looper在Android消息机制中扮演消息循环者的角色,具体就是会不停的从MessageQueue中查看是否有新的消息,如果有新的消息就会处理,否则就会阻塞在那里。Handler的工作需要Looper,没有Looper的线程就会报错。通过Looper.prepare()就可以为当前的线程创建一个Looper,然后通过Looper.looper()来开启消息循环。

Read More

Android消息机制——ThreadLocal

ThreadLocal是一个线程内部的数据存储类,通过它可以在指定的线程中存储数据,数据存储以后,只有在指定线程中可以获取到存储的数据,对于其他线程来说则无法获取到数据。
在日常开发中用到这个类的地方为:
某些数据是以线程为作用域并且不同线程具有不同的数据副本的时候。

Read More