遇事不决看注释
1 | /** |
Context 提供了关于应用环境全局信息的接口。(它描述一个应用程序环境的信息(即上下文))
它是一个抽象类,它的执行被 Android 系统所提供。(是一个抽象类,Android提供了该抽象类的具体实现类;)
它允许获取以应用为特征的资源和类型,是一个统领一些资源(应用程序环境变量等)的上下文。(通过它我们可以获取应用程序的资源和类(包括应用级别操作,如启动Activity,发广播,接受Intent等))。
通过查看,可以发现 Context 整体结构如下:

- ContextImpl:
Application/Activity/Service通过attach()调用父类ContextWrapper的attachBaseContext(),从而设置父类成员变量mBase为ContextImpl对象;ContextWrapper的核心工作都是交给mBase(即ContextImpl) 来完成;
- Application: 四大组件属于某一
Application,获取所在Application:- Activity/Service : 是通过调用其方法
getApplication(),可主动获取当前所在mApplication;mApplication是由LoadedApk.makeApplication()过程所初始化的;
- Receiver: 是通过其方法
onReceive()的第一个参数指向通当前所在Application,也就是只有接收到广播的时候才能拿到当前的Application对象; - provider: 目前没有提供直接获取当前所在
Application的方法, 但可通过getContext()可以获取当前的ContextImpl;
- Activity/Service : 是通过调用其方法







