通过阅读源码,我们会发现:
1、它描述的是一个应用程序环境的信息,即上下文。
2、该类是一个抽象(abstract class)类,Android提供了该抽象类的具体实现类ContextIml。
3、Activity类 、Service类 、Application类本质上都是Context子类,Broadcast reseive中系统会传递一个Context进来;
4、程序中Context实例个数 = Service个数 + Activity个数 + 1(Application对应的Context实例)
5、注意context的生命周期,比如Android知识梳理:消息机制之Handler(http://gqdy365.iteye.com/admin/blogs/2148925)中提的。
6、不同的context,其能力是不一样的,见下表(来自网络):


注:NO1 表示Application context的确可以开始一个Activity,但是它需要创建一个新的task。这可能会满足一些特定的需求,但是在你的应用中会创建一个不标准的回退栈(back stack),这通常是不推荐的或者不是是好的实践。

NO2 表示这是非法的,但是这个填充(inflation)的确可以完成,但是是使用所运行的系统默认的主题(theme),而不是你app定义的主题。

NO3 在Android4.2以上,如果Receiver是null的话(这是用来获取一个sticky broadcast的当前 值的),这是允许的

getApplicationContext() 返回应用的上下文,生命周期是整个应用,应用摧毁它才摧毁
Activity.this的context 返回当前activity的上下文,属于activity ,activity 摧毁他就摧毁
getBaseContext() 返回由构造函数指定或setBaseContext()设置的上下文

更多相关文章

  1. Android(安卓)Fragment---创建Fragment
  2. Fragment详解
  3. Android(安卓)Service生命周期及用法
  4. Android(安卓)安全攻防
  5. Android(安卓)打造RxBus2.x的全面详解
  6. Android系统的上下文对象Context
  7. Context Menu
  8. flutter state
  9. Android中第五大组件详解

随机推荐

  1. Android(安卓)studio设置requestWindowFe
  2. 学习音频之android中AudioRecord采集音频
  3. Android(安卓)java Broadcast广播例子,
  4. Android官方的文档中提到了模拟器中设置
  5. Android入门扫盲之二
  6. Android手势处理看这一篇就够了
  7. 基于Android的远程视频监控系统(含源码)
  8. android  打开多个Activity,返回到第一个
  9. adb server is out of date
  10. Android触摸屏事件派发机制详解与源码分