我对Context
类的概念感到困惑。我发现它是Activity
的基类,但Android文档还提到了Context存储有关应用程序环境的全局信息。所以在我的应用程序中有3个活动,这是否意味着我有3个不同的Context对象,或者它们实际上是指1个实体?
此外,Context对象的生命周期是什么 - 直到此活动进程的最后一个组件被垃圾回收为止?
答案 0 :(得分:3)
createPackageContext
的上下文文档提供了正在发生的事情的线索:
每次调用此方法都会返回一个Context对象的新实例;上下文对象不是共享的,但它们共享公共状态(Resources,ClassLoader等),因此Context实例本身相当轻量级。
由于Activity实例经常被创建/销毁,而Activity是一个Context,这是有道理的。 Context实例只是应用程序状态的各个位的传递,它们本身是长寿的,但实例本身不是。