gpt4 book ai didi

android - 为什么在Android中使用ContextImpl而不是ContextWrapper来实现Context?

转载 作者:搜寻专家 更新时间:2023-11-01 08:33:03 25 4
gpt4 key购买 nike

最近对Context的两个子类Context不是很了解,为什么要用ContextImpl类来实现Context,而不是直接用ContextWrapper?

最佳答案

Context 是抽象类,它充当有关应用程序环境的全局信息的接口(interface)。这是一个抽象类,其实现由Android系统提供。它允许访问特定于应用程序的资源和类,以及对应用程序级操作的向上调用,例如启动 Activity 、广播和接收 Intent 等。
参见 Context 类代码 here

ContextWrapper 是 Context 的适配器或代理实现,它只是将其所有调用委托(delegate)给另一个 Context。可以子类化以在不更改原始上下文的情况下修改行为。 [它使用 adapter pattern]
参见 ContextWrapper 类代码 here

ContextImpl 是 Context API 的常见实现,为 Activity 和其他应用程序组件提供基础上下文对象。
参见 ContextImpl 类代码 here

So if you browse through the code of above three classes, you caneasily understand the abstract class Context class declares the APImethods, ContextImpl implements those API methods, whereasContextWrapper class is just an adapter of any Context type so it canbe used at various places where adapter pattern is required ratherthan using Context child classes.

希望它能减少困惑!!

关于android - 为什么在Android中使用ContextImpl而不是ContextWrapper来实现Context?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39122846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com