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

有什么区别:

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

你能用一个简单的例子来说明吗?

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

不应使用getBasecontext() ,只要使用Context而不是与活动关联的Context ,并在活动被销毁时销毁。

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

不应使用getBasecontext() ,只要使用Context而不是与活动关联的Context,并且在活动被销毁时可能会被销毁。

getApplication()仅适用于Activity和Services。 尽pipe在当前的Android Activity和Service实现中, getApplication()getApplicationContext()返回的是同一个对象,但不能保证这总是如此(例如,在特定的供应商实现中)。 所以如果你想要在Manifest中注册的Application类,你不应该调用getApplicationContext()并把它转换到你的应用程序,因为它可能不是应用程序实例(你明显体验过testing框架)。

如果当前视图是一个子视图,则getParent()返回该活动的对象。换言之,返回在子视图中调用时托pipe子视图的活动对象。