首页 > 代码库 > Context类与相关子类

Context类与相关子类

  Android的应用程序弱化了Linux里的进程的概念,第三方应用开发者看到的都是一个个组件,比如常见的四大组件中的Activity,Service,Application等。这些组件需要存在于一个程序执行的上下文环境,Context抽象类的作用既是定义这样的一个环境,环境里的具体的各个组件的生存环境(抽象方法与接口),由其子类来具体实现。

       Context提供了获取应用环境信息的能力(子类具体实现的API),可以对本应用相关的组件进行操作,比如启动Activity,也可以获取本应用相关的资源。利用Context,我们可以用来对构成应用的基础组件执行相应的操作。

       这个类族的继承与委托结构如下

技术分享

IDE里完整的看起来是这样

技术分享

其中ContextImpl类为抽象类Context的方法实现者,是上下文功能实现者;上下文功能封装类ContextWrapper会放置一个对ContextImpl对象的引用(mBase),实现的抽象方法通过调用mBase的方法来实现(此为封装之意,mBase为其委托)。Application,Service,Activity可以各自扩展Context,并自定义逻辑替代扩充mBase的方法。

下面先看Context类,这个类看着东西很多,其实很多都是注释

 

Context类与相关子类