1

我创建了DroidPrefs,这是一个将 Java 对象序列化和反序列化为SharedPreferences.

你像这样保存对象:

Animal newAnimal = new Animal("Gitty", "Octocat", 8);
DroidPrefs.instance(context).put("animal", newAnimal).apply();

每次DroidPrefs.instance(Context)调用时,我都在执行以下操作:

mPrefs = PreferenceManager.getDefaultSharedPreferences(context);
mEditor = mPrefs.edit();

我的问题是,SharedPreferences像文件一样工作吗?我应该只在读写时打开它,还是可以在应用程序启动时打开它而不用担心代码的其他部分访问它?

4

1 回答 1

1

SharedPreferences 将数据存储在 XML 文件中[您可能有兴趣查看共享首选项存储在哪里?],因此确实像文件一样工作。与 File IO 相比,它是在 Android 中存储和检索原始数据的优化方式。

关于访问共享首选项的第二个问题:最好在需要时打开它,在不需要时关闭它。但是,您可能会选择管理对 SharedPreferences 的访问的单例类(在多个共享首选项的情况下可能是工厂模式),以获得简洁的设计。

于 2013-06-20T07:11:23.707 回答