SharedPreferences与一个类的静态全局变量有何不同?

时间:2012-09-27 15:15:32

标签: android sharedpreferences

我已经解释了关于SharedPreferences的以下内容,并对他们的能力有一点怀疑。这是我发现的:

  

Android SharedPreferences用于全球化   变量,以便在整个应用程序中我们可以使用SharedPreferences   存储和检索数据,而不是在一个类中定义静态变量   并让该类用于检索整个应用程序中的变量。

有人可以解释这是否正确。如果我遗漏了重大差异,请告诉我。感谢。

2 个答案:

答案 0 :(得分:3)

保存共享首选项时,android系统只会在您的app目录中创建一个包含这些值的新xml文件。因此,如果您的应用被杀死,那么这些变量将被保存。并且变量总是可以从任何活动中读取,因为它们存储在文件中。

当存储共享首选项时,你使用一个键(最终的静态字符串)来访问它们,也许这个键是他们在谈论静态时的意思

小例子:

静态:

public static final String PREFS_NAME = "settings"
public static final String SILENT_MODE = "silentMode";

在您的应用的任何活动中:

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean silent = settings.getBoolean(SILENT_MODE, false);

编辑自:http://developer.android.com/guide/topics/data/data-storage.html#pref

答案 1 :(得分:2)

您使用SharedPreferences 保存并检索任何原始数据。与静态变量方法不同,即使您的应用程序被终止,此数据也会在用户会话中持续存在。