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


Answers:


33

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

getBasecontext()不应该使用Context它,而要使用它来代替与活动相关联的活动,并且在活动被销毁时可以将其销毁。


16
怎么样getApplication()和getParent()
Nikunj Patel 2011年

107

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

getBasecontext()不应使用,而应使用Context代替它,它与活动相关联,并且在活动被销毁时有可能被销毁。

getApplication()仅对活动和服务可用。尽管在当前的Android Activity和Service实现中,getApplication()getApplicationContext()返回相同的对象,但不能保证总是如此(例如,在特定的供应商实现中)。因此,如果要在清单中注册的Application类,则永远不要调用getApplicationContext()并将其强制转换为应用程序,因为它可能不是应用程序实例(显然是测试框架所经历的)。

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


16
正如您已经提到的,我们不应该使用getBaseContext(),如果它不是那么重要,那么它为什么在编码中以及其主要优点是什么。请详细说明一下
Pir Fahim Shah 2014年

getBaseContext()应该在非常特殊的情况下使用。这里有一个很好的解释-medium.com/@ali.muzaffar/…–
lomza
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.