Activity 和 Context 是相同的吗,还是有区别?
何时应该将方法传递给 Activity,何时传递 Context?
Activity 和 Context 是相同的吗,还是有区别?
何时应该将方法传递给 Activity,何时传递 Context?
据我所了解,Context 是基础对象。因此,每个 Activity 和 Application 都派生自 Context。这意味着每个 Activity 和每个 Application
都是一个 Context
。
来自 developer.android.com
的信息, 参见Activity
java.lang.Object
↳ android.content.Context
↳ android.content.ContextWrapper
↳ android.view.ContextThemeWrapper
↳ android.app.Activity
并且 Application
java.lang.Object
↳ android.content.Context
↳ android.content.ContextWrapper
↳ android.app.Application
应用程序上下文(Application context)的生命周期与应用程序一样长,而 Activity 上下文(Activity context)的生命周期仅限于 Activity 存活期间,即在相应 Activity 的 onDestroy() 方法调用后,Activity 上下文将不再有效。
因此,如果您需要在多个 Activity 中使用上下文(例如在 Singleton 中),最好使用 Application 上下文。
通常,在 Android 框架方法中需要提供上下文时,传递哪种上下文都没有区别。但是,如果您保留了长时间存活的上下文引用,请始终注意内存泄漏问题,可以参考避免内存泄露。
Activity类继承自"ContextThemeWrapper",而它则从"ContextWrapper"继承,再从"Context"继承。
因此,是的,Activity扩展了Context!