【问题标题】:Why static variable of my android application sometimes return null?为什么我的 android 应用程序的静态变量有时会返回 null?
【发布时间】:2012-12-25 17:32:44
【问题描述】:

我正在尝试从 SharedPreferences 中获取值并将其存储在静态变量中。问题是有时我从静态变量中获取空值,但 SharedPreferences 具有价值。 我通过这个过程存储了价值:

 SharedPreferences sp = u.returnShare();
    SharedPreferences.Editor editor = sp.edit();

    StaticVariables.userId = sp.getString("UserId", "default");

【问题讨论】:

    标签: android sharedpreferences static-variables


    【解决方案1】:

    不要使用静态变量,这是不好的做法。 Android 可以随时销毁您应用程序的进程,然后在必要时通过重新创建活动来重新创建它。如果您在“第一个”活动中创建静态变量,那么当第 2 个或第 3 个活动首先启动时,它不会被初始化。

    【讨论】:

    • 那我该怎么办?我应该每次都从 sharedPreference 或任何其他更好的想法中获得价值吗?
    • 把静态变量当作缓存,如果为空则需要再次从共享首选项中获取。
    【解决方案2】:

    静态变量在 android 中不是一个好的长期存储。系统可能会在您的应用程序处于后台时随时终止它(例如,当其他任务需要内存时)。当应用重新启动时,所有存储在静态变量中的值都会消失。

    【讨论】:

    • 那我该怎么办?我应该每次都从 sharedPreference 或任何其他更好的想法中获得价值吗?
    猜你喜欢
    • 2012-03-21
    • 1970-01-01
    • 1970-01-01
    • 2014-01-15
    • 2012-04-15
    • 2017-01-12
    • 2020-03-28
    • 1970-01-01
    • 2020-09-06
    相关资源
    最近更新 更多