应用程序崩溃时,应用程序范围中的静态变量为null

时间:2012-06-21 10:58:49

标签: android static-variables

我在一个扩展Application类的类中有一些静态变量。现在,在应用程序的某个地方,如果发生崩溃,那么这些变为null为什么会这样。

我可以清楚地说,我在Application子类中声明这两个变量,并在崩溃发生时在其他java类中初始化这些变为null.my app要求在登录后只应初始化那两个。

任何答案/建议提前致谢

2 个答案:

答案 0 :(得分:2)

这种行为很正常。应用程序崩溃后,所有内容都会“重新初始化”,并且您的static变量会达到初始值,我认为这是null

如果你想让你的变量在应用程序停止/重启(这也会在Android决定停止你的应用程序时发生),你应该使用不同的存储,我建议你看看SharedPreferences

答案 1 :(得分:1)

静态变量与类相关联,只要类在内存中(它们在应用程序终止后停止存在或者在类卸载后停止存在)它们就会存在,请阅读this以获取更多信息。因此,当您的应用程序崩溃时,您的静态变量将不复存在,并再次将其值视为null

对于这些变量的持久值存储,请选择SharedPreferences

详细了解SharedPreferences here。并且example可以使用。