gpt4 book ai didi

java - 哪个类在 Android 中实现了 ContextWrapper 的方法?

转载 作者:太空宇宙 更新时间:2023-11-03 13:02:34 25 4
gpt4 key购买 nike

在开发 Android 应用程序时,我喜欢查看内部 SDK 实现。这是一个巨大的框架,如果您知道内部方法是如何实现的,有时它会有很大帮助。

现在我所做的最后一次源代码检查真的让我感到困惑。我查看了 Context 类以阅读一些实现。不幸的是,它们中的大多数都是抽象的,这就是 Android 发明 ContextWrapper(一种简单的适配器模式)的原因。

问题是,我找不到一些我感兴趣的方法。让我们以 getResources 为例。我有一个 ContextObject 并在其上调用 getResources。这个 Context 是 Activity 的一个实例(它本身没有实现 getResources())。

对于作为 Activity 的直接父类的 ContextThemeWrapper 也是如此。然后,ContextWrapper 在其 Context 成员上调用 getResources()。但是谁在实现呢?

编辑:添加来自 ContextWrapper 的代码段

public class ContextWrapper{
Context mContext

public ContextWrapper(Context ctx){
mContext = ctx
}

public Resourced getResources(){
return mContext.getResources()
}

//... all other Methods are implementing the same AdapterPattern
}

所以问题也可以是“哪个 Context 被传递给 ContextWrapper,它正在实现所需的方法”

最佳答案

通过 nicholas.hausschild 的有用提示,我终于自己找到了它,只是为了运行调试器。

不幸的是,这似乎是唯一的方法,因为它是在一个名为 ContextImpl 的类中实现的,它是包可读的(尽管没有记录)。您必须安装 Eclipse source-code plugin (如果您已经下载了 Android-SDK 并将其链接到 eclipse,安装起来似乎有点问题)查看源代码。

对于任何对这些来源感兴趣的人:clickme

关于java - 哪个类在 Android 中实现了 ContextWrapper 的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9004739/

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