getApplicationContext(),getBaseContext(),getApplication(),getParent()
有什么区别:
getApplicationContext()
-
getBasecontext()
-
getApplication()
-
getParent()
你能用一个简单的例子来说明吗?
getApplicationContext()
应用程序上下文与应用程序相关联,并且在整个生命周期中始终保持一致。
不应使用getBasecontext()
,只要使用Context
而不是与活动关联的Context
,并在活动被销毁时销毁。
getApplicationContext()应用程序上下文与应用程序相关联,并且在整个生命周期中始终保持相同。
不应使用getBasecontext() ,只要使用Context而不是与活动关联的Context,并且在活动被销毁时可能会被销毁。
getApplication()仅适用于Activity和Services。 尽pipe在当前的Android Activity和Service实现中, getApplication()和getApplicationContext()返回的是同一个对象,但不能保证这总是如此(例如,在特定的供应商实现中)。 所以如果你想要在Manifest中注册的Application类,你不应该调用getApplicationContext()并把它转换到你的应用程序,因为它可能不是应用程序实例(你明显体验过testing框架)。
如果当前视图是一个子视图,则getParent()返回该活动的对象。换言之,返回在子视图中调用时托pipe子视图的活动对象。