我们来简单回顾一下 Context 是什么?
Context 被翻译成上下文,是应用程序环境的全局信息接口,它是一个抽象类,其实现由 Android 系统提供的 ContextImpl 类。我们通过 Context 可以非常方便的访问应用程序的资源和类,以及可以进行应用程序级的各种操作,比如启动 Activity 和 Service、注册和发送广播、权限操作、主题操作、存储对象操作等等。它简直是一个万能类!难怪我们需要经常用到它。
Context 及 Context 家族,请参考《从 Context 家谱来聊一聊 Context 家族使用的设计模式?》。
实际开发中,我们课可以从使用场景上,将 Context 分为:Application、Activity 和 Service 三种类型。本文将从使用场景作为切入点,分别介绍 Context 的创建、使用等过程和它们之间的联系和区别。
最后,我们再来想一个问题:一个应用在运行过程中,到底有多少个 Context 对象呢?
我们首先来看 Application 中的 Context 的创建及赋值过程。
我们来看 Application 的定义: