【问题标题】:static variables in application scope are null when app crashes应用程序崩溃时,应用程序范围内的静态变量为空
【发布时间】:2012-06-23 14:25:42
【问题描述】:

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

我可以说清楚吗,我在 Application 子类中声明这两个变量,并在发生崩溃时在其他 java 类中初始化这些变量为 null。我的应用程序要求在登录后只有这两个变量应该被初始化。

对于任何答案/建议提前致谢

【问题讨论】:

    标签: android static-variables


    【解决方案1】:

    静态变量与一个类相关联,只要该类在内存中,它们就会一直存在(一旦您的应用程序终止或一旦该类被卸载,该类将不复存在,请阅读this 了解更多信息)。因此,当您的应用程序崩溃时,您的静态变量将不复存在,并再次将它们的值作为null

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

    阅读更多关于 SharedPreferences here 的信息。还有一个example 可以使用。

    【讨论】:

      【解决方案2】:

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

      如果您想在应用程序停止/重新启动时保留变量(当 Android 决定停止您的应用程序时也会发生这种情况),您应该使用不同的存储,我建议查看 SharedPreferences

      【讨论】:

        猜你喜欢
        • 2012-04-15
        • 1970-01-01
        • 2016-12-28
        • 2017-01-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-18
        • 2016-09-26
        相关资源
        最近更新 更多