Activity、Service和Application 都间接地继承自 Context,因此我们可以计算出去一个应用进程中有多少个Context,这个数量等于Activity和Service的总个数加1,1指的是Application 的数量
//#################################分割线 #################################################
Context关联类
ContextImpl 内部包含Context类型的mBase对象,mBase 具体指向ContextImpl。ContextImpl提供了很多功能,但是外界需要使用并扩展ContextImpl的功能,因此设计上使用了装饰模式,ContextWrapper是装饰类,它对ContextImpl进行包装,ContextWrapper主要起了方法传递的作用,ConttextThemeWrrapper中几乎所有的方法都是调用ContextImpl的相应方法来实现的。ContextThemeWrapper、Service 和 Application都继承自ContextWrapper,这样他们都可以通过mBase来使用Context的方法,同时它门也是装饰类,在ContextWrapper的基础上又添加了不同的功能。
//#################################分割线 #################################################
Application Context 创建过程时序图
//#################################分割线 #################################################
Activity Context 创建过程时序图
//#################################分割线 #################################################
Service Context 创建过程时序图 参考 Activity