是什么区别getContext(),getApplicationContext(),getBaseContext(),和" this"?
虽然这是一个简单的问题,但我无法理解它们之间的基本区别.如果可能,请举出一些简单的例子.
我找不到令人满意的答案,所以我们在这里:有什么处理Activity/Service.getApplication()和Context.getApplicationContext()?
在我们的应用程序中,都返回相同的对象.ActivityTestCase然而,在一个getApplication()模拟应用程序将使用模拟getApplicationContext返回,但仍将返回一个不同的上下文实例(一个由Android注入).那是一个错误吗?这是故意的吗?
我甚至不了解首先的区别.测试套件外是否存在两个呼叫可能带有不同对象的情况?何时以及为何?此外,为什么getApplication定义上Activity和Service,但不是Context?不应该随处可用的有效应用程序实例吗?
在我看过的各种Android代码中:
public class MyActivity extends Activity {
public void method() {
mContext = this; // since Activity extends Context
mContext = getApplicationContext();
mContext = getBaseContext();
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我找不到任何合适的解释,哪些更好,以及在什么情况下应该使用.
关于这方面的文件的指示,以及关于如果选择了错误的可能会破坏的指导,将不胜感激.
有什么区别:
getApplicationContext()getBasecontext()getApplication()getParent()你能用一个简单的例子详细说明吗?
我真的不明白这整个事情是如何工作的,所以如果我有一些类A需要B扩展的类的上下文,Activity我该如何获得该上下文?
我正在寻找一种比将上下文作为类A构造函数的参数更有效的方法.例如,如果类A将有数百万个实例,那么我们最终会有数百万个冗余指针,Context而我们应该能够以某种方式只有一个地方和一个getter函数......
getBaseContext(),getApplicationContext()和ActivityName.this获取的活动上下文之间的实际区别是什么?
在处理不同的活动并开始它们以获得结果时,我别无选择,只能使用意图。现在意图需要上下文,这对我来说毫无意义。我知道上下文允许访问应用程序资源但是
当意图只是一个简单的信使时,为什么您需要了解应用程序资源?
另外,我不太确定为什么有些人getApplicationContext()用它来创建意图,而其他人将其用于活动上下文????
最后,当我没有传递上下文的“this”而是应用程序上下文时,我不太确定startActivityResult()调用该方法的活动如何接收回调onActivityResult()。我认为您必须使用“this”或传入当前调用的活动上下文startActivityResult()才能接收回调。那只是直接的java对吧?如果您传入一个类,则另一个活动类将引用您的类,因此允许它调用类中的方法,即onActivityForResult()。然而,事实并非如此,所以我错过了什么?