Context
有关应用程序环境的全局信息的接口。 这是一个抽象类,其实现由 Android 系统提供。 它允许访问特定于应用程序的资源和类,以及对应用程序级操作的调用,例如启动 activity、broadcast 和接收 intent 等。
ContextImpl
Context API 的通用实现,为 Activity 和其他应用程序组件提供 base context 对象。
ContextWrapper
Context 的代理实现,只需将其所有调用委托给另一个 Context。 可以进行子类化以修改行为而不更改原始 Context。
构造函数:
1 | public ContextWrapper(Context base) { |
ContextWrapper 里的操作基本都是调用的 mBase 的同名方法。mBase 是 ContextImpl 的实例。
Application
用于维护全局应用程序状态的基类。 可以通过创建子类并指定该子类的完全限定名称作为 AndroidManifest.xml
的 <application>
标记中的 android:name
属性来提供自己的实现。
当创建 application/package 的进程时,Application 类或 Application 类的子类会在任何其他类之前实例化。
注意:通常不需要子类化 Application。 在大多数情况下,静态单例可以以更加模块化的方式提供相同的功能。
如果你的单例需要全局 context(例如注册 broadcast receiver),请在调用单例的 getInstance()
方法时包含 Context.getApplicationContext()
作为 Context 参数。
ContextThemeWrapper
允许你修改或替换 wrapped context 的主题的 context wrapper。