Android的应用程序弱化了Linux里的进程的概念,第三方应用开发者看到的都是一个个组件,比如常见的四大组件中的Activity,Service,Application等。这些组件需要存在于一个程序执行的上下文环境,Context抽象类的作用既是定义这样的一个环境,环境里的具体的各个组件的生存环境(抽象方法与接口),由其子类来具体实现。
Context提供了获取应用环境信息的能力(子类具体实现的API),可以对本应用相关的组件进行操作,比如启动Activity,也可以获取本应用相关的资源。利用Context,我们可以用来对构成应用的基础组件执行相应的操作。
这个类族的继承与委托结构如下
IDE里完整的看起来是这样
其中ContextImpl类为抽象类Context的方法实现者,是上下文功能实现者;上下文功能封装类ContextWrapper会放置一个对ContextImpl对象的引用(mBase),实现的抽象方法通过调用mBase的方法来实现(此为封装之意,mBase为其委托)。Application,Service,Activity可以各自扩展Context,并自定义逻辑替代扩充mBase的方法。
下面先看Context类,这个类看着东西很多,其实很多都是注释
时间: 2024-12-05 00:43:41