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

Nik*_*tel 94 android android-context

有什么区别:

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

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

Rav*_*avi 106

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

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

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

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

  • 正如你所提到的,我们不应该使用getBaseContext(),如果它不是那么重要,那么为什么它在编码中,它的主要优点是什么.请详细说明一下 (16认同)

Har*_*der 32

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

getBasecontext()不应该使用,只需使用Context与活动相关的代替它,并在活动被销毁时销毁.

  • 那么getApplication()和getParent()呢 (16认同)