Context的中文翻译为:语境; 上下文; 背景; 环境,在开发中我们经常说称之为“上下文”,那么这个“上下文”到底是指什么意思呢?在语文中,我们可以理解为语境,在程序中,我们可以理解为当前对象在程序中所处的一个环境,一个与系统交互的过程。比如微信聊天,此时的“环境”是指聊天的界面以及相关的数据请求与传输,Context在加载资源、启动Activity、获取系统服务、创建View等操作都要参与。
在应用程序中Context的具体实现子类就是:Activity,Service,Application。那么 Context数量=Activity数量+Service数量+1。当然如果你足够细心,可能会有疑问:我们常说四大组件,这里怎么只有Activity,Service持有Context,那Broadcast Receiver,Content Provider呢?Broadcast Receiver,Content Provider并不是Context的子类,他们所持有的Context都是其他地方传过去的,所以并不计入Context总数。

Application和 getApplicationContext

这两个方法在作用域上有比较大的区别。getApplication()方法的语义性非常强,一看就知道是用来获取Application实例的,但是这个方法只有在Activity和Service中才能调用的到。那么也许在绝大多数情况下我们都是在Activity或者Service中使用Application的,但是如果在一些其它的场景,比如BroadcastReceiver中也想获得Application的实例,这时就可以借助getApplicationContext()方法了。
通常我们想要获取Context对象,主要有以下四种方法
1:View.getContext,返回当前View对象的Context对象,通常是当前正在展示的Activity对象。
2:Activity.getApplicationContext,获取当前Activity所在的(应用)进程的Context对象,通常我们使用Context对象时,要优先考虑这个全局的进程Context。
3:ContextWrapper.getBaseContext():用来获取一个ContextWrapper进行装饰之前的Context,可以使用这个方法,这个方法在实际开发中使用并不多,也不建议使用。
4:Activity.this 返回当前的Activity实例,如果是UI控件需要使用Activity作为Context对象,但是默认的Toast实际上使用ApplicationContext也可以。

作者:尹star
链接:https://www.jianshu.com/p/94e0f9ab3f1d

android content相关推荐

  1. AndroidStudio中提示:android.content.res.Resources NotFoundException: String resource ID 0x

    场景 在Android Studio中对TextView调用setText时传入的是Int类型的值,就会提示: android.content.res.Resources NotFoundExcept ...

  2. android.content.Context.getResources()‘ on a null object reference

    super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); //开始运行时就把库先建好 //我在这边一开始 ...

  3. Android Content Provider Security

    0x00 科普 内容提供器用来存放和获取数据并使这些数据可以被所有的应用程序访问.它们是应用程序之间共享数据的唯一方法:不包括所有Android软件包都能访问的公共储存区域.Android为常见数据类 ...

  4. android.content.ActivityNotFoundException: No Activity found to handle Intent 的错误

    android.content.ActivityNotFoundException: No Activity found to handle Intent {  }的错误原因 是声明Intent的两个 ...

  5. XmlResourceParser android.content.pm.ProviderInfo.loadXmlMetaData(android.content.pm.PackageManager,

    android开发之多个provider的解决方法: 下面的报错针对android7.0及以上都是一个问题就是provider的authorities没有对上. 看下报错代码: java.lang.N ...

  6. Android之提示android.content.res.Resources$NotFoundException: Resource ID #0x7f08010a

    1 问题 在我的oppo机器上面运行一个页面没有奔溃,但是在红米安卓5.1版本运行页面奔溃,奔溃信息如下 /Timeline(11600): Timeline: Activity_launch_req ...

  7. Android报“android.content.res.Resources$NotFoundException: String resource ID #0x2”错误

    Android报"android.content.res.Resources$NotFoundException: String resource ID #0x2"错误 当调用se ...

  8. android Content provider 组件

    Content Provider 属于Android应用程序的组件之一,作为应用程序之间唯一的共享数据的途径,Content Provider 主要的功能就是存储并检索数据以及向其他应用程序提供访问数 ...

  9. android.content.res.Resources$NotFoundException: String resource ID XXXX

    错误:android.content.res.Resources$NotFoundException: String resource ID XXXX 原因:一般发生在参数 int resId 错误, ...

  10. Android Content Provider基础

    Android Content Provider基础 Content Providers Content providers管理对一个结构化的数据集合的访问.它们封装了数据,并且提供了保护数据安全性的 ...

最新文章

  1. datagridview滚动条自动滚动_Win32编程基础之滚动条
  2. 网络推广外包关键词排名首页却无人访问很可能网络推广外包出现问题
  3. 在 Element-UI 的 Table 组件上添加列拖拽效果
  4. JavaScript的作用域与闭包
  5. 多类线性分类器算法原理及代码实现 MATLAB
  6. (34)SystemVerilog语言编写计数器
  7. 几种测量app启动时间的方式
  8. 史上最全的phpstorm常用配置
  9. java ResourceBundle
  10. 【C++】教大家在七夕new一个对象
  11. MES系统架构初版ZXW
  12. CodeForces 595A Vitaly and Night
  13. 使用python爬取股票基金的最新数据消息,并用Excel绘制树状图一目了然
  14. 大数据在人力资源管理当中的应用
  15. java面向对象笔记
  16. Jpress部署教程
  17. 11.绘制统计图形——误差棒图
  18. HaLoop—适用于迭代计算的Hadoop
  19. There are no enabled repos. Run “yum repolist all“ to see the repos you have. You can enable repos问题
  20. javafx:AnchorPane设置子容器和父容器同等大小

热门文章

  1. obj模型转json模型_2D转3D!14位艺术家的动漫模型作品欣赏~
  2. 自动化恶意软件分析系统Cuckoo安装、配置详解
  3. Lpa* 源码 原理
  4. softmax分类器 matlab,softmax原理及Matlab实现
  5. 请求因HTTP状态401失败:Unauthorized 的原因?
  6. 解决流只能读一次的问题,getInputStream() has already been called for this request
  7. 序列标注 | (5) 命名实体识别技术综述
  8. 前、后台网站模板参考
  9. 婴儿潮一代 VS 在线部落:Web 3.0有哪些不同?
  10. 2019美国数学建模B题翻译:Problem B: Send in the Drones: Developing an Aerial Disaster Relief Response System