首页 文章

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

提问于
浏览
91

有什么区别:

  • getApplicationContext()

  • getBasecontext()

  • getApplication()

  • getParent()

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

2 回答

  • 102

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

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

  • 30

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

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

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

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

相关问题