getApplicationContext()、getBaseContext()、getApplication()、getParent()

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (23)

在以下方面有何区别:

  1. getApplicationContext()
  2. getBasecontext()
  3. getApplication()
  4. getParent()

你能用一个简单的例子详细说明一下吗?

提问于
用户回答回答于

getApplicationContext() 应用程序上下文与应用程序相关联,并且在整个生命周期中始终保持相同。

getBasecontext()不应该被使用,只要使用Context它来代替与活动相关联的活动,并且可以在活动被销毁时被销毁。

用户回答回答于

getApplicationContext()应用程序上下文与应用程序相关联,并且在整个生命周期中始终是相同的。

getBasecontext()不应该使用,只需使用上下文,而不是与活动相关的上下文,并且在活动被销毁时可能被销毁。

getApplication()仅适用于活动和服务。虽然在目前的Android活动和服务实现中,getApplication()getApplicationContext()返回相同的对象,不能保证总是这样(例如,在特定的供应商实现中)。因此,如果你想要在清单中注册的应用程序类,就不应该调用getApplicationContext()并将其转换到您的应用程序中,因为它可能不是应用程序实例(很明显,你在测试框架中经历了这种情况)。

getParent()如果当前视图是子视图,则返回活动的对象。换句话说,在子视图中调用时返回承载子视图的活动对象。

扫码关注云+社区