1.什么是context
1、它描述的是一个应用程序环境的信息,即上下文。
2、该类是一个抽象(abstract class)类,Android提供了该抽象类的具体实现类(ContextIml类)。
3、通过它我们可以获取应用程序的资源和类,也包括一些应用级别操作,例如:启动一个Activity,发送广播,接受Intent 信息 等。
2.context的继承关系
Context类 抽象类,提供了一组通用的API。
ContextIml.java类 Context类的实现类,该类实现了Context类的功能
ContextWrapper类 该类只是对Context类的一种包装,该类的构造函数包含了一个真正的Context引用,即ContextIml对象。感觉像设计模式中的桥接模式,接口声明和实 现分开。
ContextThemeWrapper类 该类内部包含了主题(Theme)相关的接口,即android:theme属性指定的。只有Activity需要主题,Service不需要主题,所以Service直接继承 于ContextWrapper类。
3.创建Context实例的时机
应用程序创建Context实例的情况有如下几种情况:
1、创建Application 对象时, 而且整个App共一个Application对象
2、创建Service对象时
3、创建Activity对象时
因此应用程序App共有的Context数目公式为:
总Context实例个数 = Service个数 + Activity个数 + 1(Application对应的Context实例)
时间: 2024-10-18 14:29:25