活动和背景是否相同,或者存在差异?
我什么时候应该有一个方法传递一个Activity,什么时候传递一个Context?
答案 0 :(得分:103)
据我了解:
Context是基础对象。因此,与Activity相同的每个Application都来自Context。这意味着每个活动和每个Application
都是Context
;
来自developer.android.com
Activity
java.lang.Object
↳ android.content.Context
↳ android.content.ContextWrapper
↳ android.view.ContextThemeWrapper
↳ android.app.Activity
java.lang.Object
↳ android.content.Context
↳ android.content.ContextWrapper
↳ android.app.Application
只要您的应用程序处于活动状态,应用程序上下文就会持续,而活动上下文会因您的活动而死亡(在该活动的onDestroy
之后无效)。
因此,如果您需要跨活动的Context(即在Singleton中),您最好使用Application上下文。
通常在需要上下文的Android Framework方法中,您传递的方法没有区别。但是,如果您要保留长期参考语境
,请始终注意MemoryLeaks答案 1 :(得分:8)
正如您在Android doc上看到的那样:
Activity类扩展自“ContextThemeWrapper”,这个来自“ContextWrapper”,而来自“Context”。
所以,是的,一个活动扩展了上下文!