Android应用模型是基于组件的应用设计模式,Activity、Service等组件不是采用普通的对象创建方式,而是各自有自己的上下文环境Context
ContextWrapper包装类,使用装饰器模式 设计模式,构造函数中包含一个Context的引用,调用包装类的方法都会转向其真正的Context对象。
ContextThemeWrapper包含了与主题相关的接口,只有Activity需要用到
ContextImpl实现Context中的所有函数,Activity、Application、Service初始化时都会创建ContextImpl,由ContextImpl实现Context中的方法
通过Context访问Android系统的服务和资源,包括
返回的是同一个Applicatoin对象,但作用域不同:
getApplicatoin()的作用域:Activity、Service,但不能在BroadcastReceiver里使用;
getApplicationContext()的作用域会广一些,如包括BroadcastReceiver等。
getApplicationContext():返回的是Application类型的Context
Activity.this:返回的是当前Activity的Context
getBaseContext():返回构造函数指定的Context / setBaseContext()里传入的Context