Android中一个静态variables的生命周期

当我在我的主要活动中声明和初始化一个variables为静态,并且活动被破坏。 我还可以访问variables的内容吗?

例如总是访问我存储到这个variables的AsyncTask? 我想要的是在方向改变之后也能够访问它。

Solutions Collecting From Web of "Android中一个静态variables的生命周期"

静态variables与一个类相关联,只要类存储在内存中,它们就会存活,当类被卸载的时候它就会被销毁(这种情况很less发生)。

在Android中,您已经看到,当我们closures任何应用程序时,它并没有完全closures,它仍然在最近的应用程序堆栈中,您可以通过按住主屏幕button(在大多数设备上)来查看。

当其他应用程序需要内存时,Android自己踢出了最近的应用程序

我还可以访问variables的内容吗?

假设通过“销毁”你的意思是像用户按下BACK,是的。

静态数据成员在整个过程中生活。

例如总是访问我存储到这个variables的AsyncTask? 我想要的是在方向改变之后也能够访问它。

这不是一个合适的解决scheme。 使用保留的片段,或使用onRetainNonConfigurationInstance()

如果进程被终止,那么所有的静态variables将被重新初始化为默认值。

这主要是因为,当您重新启动应用程序时,会创build一个新的实例 ,并且静态variables将被重新初始化。

Android 有空过程的概念,说如果用户经常使用它,即使所有组件都被销毁(活动,服务和/或广播接收者),你的应用程序也不能从内存中移除,在这种情况下,静态variables不会完全清除。

应用程序类是在组件之间共享某些临时variables的最佳方式,因为应用程序类将在应用程序启动时正确创build,并且在用户退出应用程序后将被清除。

参考: http : //skillgun.com/question/9849/android-provab/face-to-face-round/if-i-close-the-application-will-it-destroy-all-the-static-variables

静态variables或静态块不与对象关联。 这些是不与对象关联的类级variables。 如果我们销毁对象,静态variables将不会销毁在同一类中定义的variables。 静态variables在内存中初始化一次。

所以当我们closures应用程序对象销毁但静态variables不会破坏。 但是,当我们清除应用程序然后类摧毁,所以静态variables也。 在某些情况下,由于可用内存空间的情况下,杀死类会导致静态variables破坏。