Android上下文背后的逻辑

Android上下文背后的逻辑,android,Android,我已经阅读了很多教程,这些教程描述了android各种获取上下文的选项之间的区别,但我仍然感到困惑。 如果我使用getApplicationContex而不是getContext、this、getActivity和getBaseContext,是否有任何问题。。在我的整个申请中 许多人把这个问题标为重复问题。但我仍然没有从任何人那里得到满意的答案。答案应该是“是”或“否”,如果是,则说明正确的原因 请再看看我的问题 如果我使用getApplicationContex而不是getContext,这

我已经阅读了很多教程,这些教程描述了android各种获取上下文的选项之间的区别,但我仍然感到困惑。 如果我使用getApplicationContex而不是getContext、this、getActivity和getBaseContext,是否有任何问题。。在我的整个申请中

许多人把这个问题标为重复问题。但我仍然没有从任何人那里得到满意的答案。答案应该是“是”或“否”,如果是,则说明正确的原因

请再看看我的问题

如果我使用getApplicationContex而不是getContext,这、getActivity和getBaseContext等有什么问题吗。。。在我的整个申请中?
如果是。。为什么?

大多数情况下,您获得的上下文是活动而不是应用程序。是一个 关于上下文的解释很好。据我所知,如果我需要与UI相关的任何东西,我会使用活动上下文。

是Android库中的主要基类。每个类都扩展了它。它就像Java库中的对象类一样

有不同的方式获取上下文

getApplicationContext:它指向应用程序的上下文。 getContext:它指向当前正在运行的组件。 getBaseContext:它是ContextWrapper的方法。ContextWrapper是上下文的代理实现,它只是将其所有调用委托给另一个上下文。可以子类化以修改行为而不更改原始上下文。根据javadocs。 这:它指向当前活动/BroardcastReceiver或服务的上下文。 getActivity:它指向当前正在运行的活动的上下文。
我的想法是getApplicationContext将返回这个,getContext将返回这个等等。。。。。但我想知道,如果我在整个应用程序中使用getApplicationContext,是否有任何问题?getApplicationContext始终返回应用程序的上下文,这意味着它具有整个应用程序的上下文。所以这是获取上下文的正确方法。在另一种情况下,您可能会得到NullPointerException,这意味着我可以在应用程序中的任何位置使用getApplicationContext来获得正确的上下文?如果是这样,那么用其他方式获取上下文又有什么用呢。我很抱歉问这样的问题,但我能做的对android世界来说是新的。你是对的,你的观察很好。但我相信这一定是有原因的。原因可能是堆内存大小、执行时间差等。@AndroidStudentM,你明白我的意思了吗?