我找不到一个令人满意的答案,所以我们开始:Activity/Service.getApplication()
和Context.getApplicationContext()
是什么关系?
在我们的应用程序中,两者返回相同的对象。然而,在ActivityTestCase
中,模拟应用程序将使getApplication()
返回模拟,但getApplicationContext
仍将返回一个不同的上下文实例(由Android注入)。那是虫子吗?是故意的吗?
我一开始都不明白有什么区别。在测试套件之外是否存在两个调用可能返回不同对象的情况?什么时候,为什么?此外,为什么getApplication
定义在Activity
和Service
上,而不是Context
上?在任何地方中不应该总是有一个有效的应用程序实例可用吗?