getApplicationContext(),getBaseContext(),getApplication(),getParent()

时间:2011-07-28 04:56:01

标签: android android-context

有什么区别:

  1. getApplicationContext()
  2. getBasecontext()
  3. getApplication()
  4. getParent()
  5. 你能用一个简单的例子详细说明吗?

2 个答案:

答案 0 :(得分:104)

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

不应该使用

getBasecontext(),只需使用Context而不是与活动相关联的Context,并且可以在活动被销毁时销毁。

getApplication()仅适用于活动和服务。虽然在当前的Android Activity和Service实现中, getApplication() getApplicationContext()会返回相同的对象,但无法保证始终如此(例如,在特定的供应商实施中)。 因此,如果您想要在Manifest中注册的Application类,则不应该调用 getApplicationContext()并将其强制转换为您的应用程序,因为它可能不是应用程序实例(您在测试中很明显框架)。

如果当前视图是子视图,则

getParent()返回活动的对象。换句话说,在子视图中调用时返回托管子视图的活动对象。

答案 1 :(得分:32)

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

不应使用

getBasecontext(),只需使用Context代替与活动相关联的{{1}},并在活动销毁时销毁。