问题描述
我提到了这个 question 但没有答案。
文档也没有说清楚。
有人能提供清楚的解释吗?
解决方法
正如文档所说,它接受一个基本的 Context
实例并表现为一个 Context
本身,只是通过基本上下文委托所有调用。
当您从 ContextWrapper
继承并覆盖其某些功能时,就会出现差异,例如,您可以覆盖 Context.getTheme()
方法以为新上下文提供不同的主题。然后,ContextWrapper
的行为将与基本上下文相同,只是暴露了一个替代主题。
它通常在内部使用,而不是用于非系统应用,因此您可能永远不必处理它。
请注意,如果您查看 ContextThemeWrapper
的 source code,可以更好地了解我给出的覆盖主题的示例,它充当提供替代主题的便利类。这很好地展示了它的用例。