我创建了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
是否像文件一样工作?我应该只在阅读和写作时打开它,还是我可以在应用程序开始时打开它而不用担心代码的其他部分访问它?
答案 0 :(得分:1)
SharedPreferences将数据存储在XML文件中[您可能也有兴趣看到Where are shared preferences stored?],因此确实像文件一样工作。与文件IO相比,它是在Android中存储和检索原始数据的优化方式。
关于访问共享偏好的第二个问题: 当你需要它时打开总是更好,而当你不需要它时关闭它。但是,您可以选择单例类(在多个共享首选项的情况下可能是工厂模式),它管理对SharedPreferences的访问以获得整洁的设计。