当前位置: 首页 > 工具软件 > application > 使用案例 >

从源码分析 Application、Activity、Service 中 Context 的关系和区别

锺离德庸
2023-12-01

从源码分析 Application、Activity、Service 中 Context 的关系和区别


我们来简单回顾一下 Context 是什么?

Context 被翻译成上下文,是应用程序环境的全局信息接口,它是一个抽象类,其实现由 Android 系统提供的 ContextImpl 类。我们通过 Context 可以非常方便的访问应用程序的资源和类,以及可以进行应用程序级的各种操作,比如启动 Activity 和 Service、注册和发送广播、权限操作、主题操作、存储对象操作等等。它简直是一个万能类!难怪我们需要经常用到它。

Context 及 Context 家族,请参考《从 Context 家谱来聊一聊 Context 家族使用的设计模式?》

实际开发中,我们课可以从使用场景上,将 Context 分为:Application、Activity 和 Service 三种类型。本文将从使用场景作为切入点,分别介绍 Context 的创建、使用等过程和它们之间的联系和区别。

最后,我们再来想一个问题:一个应用在运行过程中,到底有多少个 Context 对象呢?

Application 中的 Context

我们首先来看 Application 中的 Context 的创建及赋值过程。

mBase 的赋值过程

我们来看 Application 的定义:

 类似资料: