我有一个BaseActivity和多个扩展它的Activities。
BaseActivity有一个静态变量,使其在后代Activities之间共享(它们都共享相同的实例)。
静态变量仅由扩展BaseActivity的MainActivity初始化。
MainActivity明确注册了一个BroadcastReceiver。
BroadcastReceiver更改静态变量中的值。
我想确保如果系统杀死MainActivity(例如,出于低内存原因),则静态变量将被重置并设置为null。
正如我所说,MainActivity与其他Activities共享静态变量,并且它独占BroadcastReceiver,并且是初始化静态变量的唯一对象。
没有BroadcastReceiver,静态变量数据将不可靠。
现在你已经了解了整个情况。让我们进入问题:
在这种情况下,共享静态变量的生命周期是什么?
Android(在低内存的情况下)是销毁单个activity还是销毁整个应用程序(所有activities)?
- 如果它完全销毁我的应用程序并重置静态变量,那将是可以接受的,我担心它仅销毁MainActivity并注销BroadcastReceiver,但仍保留静态变量(这将变得不可靠)。
如果Android可以仅销毁MainActivity并保留静态变量,那么下次MainActivity启动时,我如何被通知或知道它,以便我可以重新加载静态变量中的值?
很抱歉,我不能依靠MainActivity中的onDestroy()
将静态变量设置为null,因为您知道在低内存情况下,无法保证调用它。