【发布时间】:2015-07-16 17:23:07
【问题描述】:
我正在帮助整理这个页面:What is a context?
为了帮助说明组件与Context 的关系,我通过查看框架源代码创建了此图:
经过一番挖掘,我有以下问题:
-
什么创建了
Context以及使用了哪些具体类? 基类Context本身是一个抽象类,几乎需要实现其所有方法。而ContextWrapper在实例化时需要传入一个Context实例作为它的基本上下文,因此必须至少有一个具体的Context类。 - 我了解
ContextWrapper及其子类根据需要利用包装器/装饰器模式向基础Context类添加功能。ContextThemeWrapper的用途是什么?它覆盖了一些方法,但如果它包装了一个基Context,为什么不直接将调用委托给基Context?例如,Activity类扩展了ContextThemeWrapper,它为getTheme()和setTheme()提供了具体的实现。为什么?
Android 开发者 java 文档有点含糊。例如,ContextWrapper
【问题讨论】:
-
我实际上能够进入一个应用程序并找到
Activity和Application用作mBaseContext的具体类。这是ContextImpl。 github.com/android/platform_frameworks_base/blob/master/core/…