这是Stackoverflow上一位网友的回答:

  原地址:http://stackoverflow.com/questions/3572463/what-is-context-in-android

  

As the name suggests, its the context of current state of the application/object. It lets newly created objects understand what has been going on. Typically you call it to get information regarding another part of your program (activity, package/application)

You can get the context by invokinggetApplicationContext(),getContext(),getBaseContext()orthis(when in the activity class).

Typical uses of context:

  • Creating New objects: Creating new views, adapters, listeners:

    1 TextView tv = new TextView(getContext());2 ListAdapter adapter = new SimpleCursorAdapter(getApplicationContext(), ...);
  • Accessing Standard Common Resources: Services like LAYOUT_INFLATER_SERVICE, SharedPreferences:

    1 context.getSystemService(LAYOUT_INFLATER_SERVICE)   2 getApplicationContext().getSharedPreferences(*name*, *mode*);
  • Accessing Components Implicitly: Regarding content providers, broadcasts, intent

    getApplicationContext().getContentResolver().query(uri, ...);

  注: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()设置的上下文

  (图片及注来自http://gqdy365.iteye.com/blog/2149731)

更多相关文章

  1. android service 生命周期
  2. android 多窗口模式activity的生命周期
  3. Android错误之控件FloatingActionButton
  4. Android主题Theme.AppCompat.Light.NoActionBar
  5. 协程中的取消和异常 | 核心概念介绍
  6. 月薪8k到年入60w!Android毕业生开发三年做到阿里P7!我说:普通人也可
  7. Android全局主题样式控制,语言设置、主题颜色、字体大小、字体样
  8. Android样式的开发:Style篇
  9. Android之Android(安卓)apk动态加载机制的研究(二):资源加载和activ

随机推荐

  1. Android实现刮刮卡抽奖(上)
  2. android 黑屏状态下,开屏代码
  3. The Saygus VPhone V1 clears FCC, Will
  4. android中图片的拖拉和缩放
  5. Android(安卓)ListView的使用
  6. android save bitmap
  7. Android中Broadcast的Intent大全
  8. android driver for ubuntu 手机驱动
  9. android日历实现
  10. Android(安卓)之 Spinner用法介绍