Java 活动之间共享的静态变量的生命周期是什么?
我有一个BaseActivity和多个扩展它的活动 BaseActivity有一个静态变量,使其在子活动之间共享(它们都共享同一个实例) 静态变量仅由MainActivity(扩展BaseActivity)初始化 MainActivity显式注册BroadcastReceiver BroadcastReceiver更改静态变量中的值 我想确定系统是否终止了MainActivity(例如,对于内存不足),静态变量将被重置并设置为null。 正如我所说,MainActivity与其他活动共享静态var,它单独拥有BroadcastReceiver,并且是初始化静态var的那个 如果没有广播接收器,静态变量数据将不可靠。 现在你有了整个场景。让我们进入问题: 在这种情况下,共享静态var的生命周期是什么? Android(在内存不足的情况下)会破坏个人活动还是会破坏我的整个应用程序(整个活动)?Java 活动之间共享的静态变量的生命周期是什么?,java,android,android-lifecycle,activity-lifecycle,static-variables,Java,Android,Android Lifecycle,Activity Lifecycle,Static Variables,我有一个BaseActivity和多个扩展它的活动 BaseActivity有一个静态变量,使其在子活动之间共享(它们都共享同一个实例) 静态变量仅由MainActivity(扩展BaseActivity)初始化 MainActivity显式注册BroadcastReceiver BroadcastReceiver更改静态变量中的值 我想确定系统是否终止了MainActivity(例如,对于内存不足),静态变量将被重置并设置为null。 正如我所说,MainActivity与其他活动共享静态va
- 如果它完全破坏了我的应用程序并重置了可以接受的静态变量,我担心它会单独破坏MainActivity并注销BroadcastReceiver,但它保留了静态变量(这将变得不可靠)
onDestroy()
将静态变量设置为null,因为您知道,如果Android在内存不足的情况下破坏了活动,则不能保证调用静态变量
我想确保如果系统终止了MainActivity(例如内存不足),静态变量将被重置并设置为null。在这种情况下,共享静态var的生命周期是什么
只有当扩展BaseActivity
的所有其他活动都将被终止时,静态变量才会重置为null
(因为它已经被MainActivity
和/或BroadcastReceiver
设置了!=null
)。由于您的所有活动都扩展了BaseActivity
,因此变量重置将在整个流程终止时发生
Android(在内存不足的情况下)会破坏个人活动还是会破坏我的整个应用程序(整个活动)
在这种情况下,Android会破坏整个应用程序流程
如果Android可以单独销毁MainActivity并保留静态变量,那么下次MainActivity启动时,我如何得到通知或意识到这一点,以便重新加载静态变量中的值
如果适用,请使用