可以静态变量的值由系统在Android应用被清零?(Can static variable valu

2019-10-17 03:32发布

我注意到,当Android操作系统关闭其不在活动堆栈的顶部活动,我的一些静态变量变得无效。 我绝对相信,该变量指向的对象之前,我并没有改变自己的价值。

休闲活动后,我得到NullPointerException异常的原因我的静态变量之一(这是在应用程序的子类的onCreate初始化,应该是在流程生命周期的任何时候都不要空)为空。

由于它不是我是谁空值的变量,我想这是关闭后台活动和零点静态变量由于内存不足Android操作系统。 可能吗?

Answer 1:

Android不关闭它们不是活动堆栈的顶部活动。 如果您的应用程序转到后台和Android决定是否需要收回它只是杀死承载您的活动进程的内存。 当用户返回到应用程序,Android的创建一个新的进程,并重新创建是在活动堆栈的顶部的活动

在大多数的概率,这就是你所看到的。 显然,如果你的进程被杀掉并重新创建,您的静态变量将是无效的。



Answer 2:

如果底层VM /线程,该活动在运行中丧生,他们只是被清零。 那么它就像你完全重新启动应用程序。 不要依赖于静态变量,如果你需要保持周围的东西,它存储在一个数据库或偏好。



文章来源: Can static variable value be nulled by system in android app?