为什么我的android应用程序的静态变量有时会返回null?

时间:2013-01-11 06:38:25

标签: android sharedpreferences static-variables

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

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

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:3)

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