我对Android开发并不熟悉,并且正在尝试学习一些爱好项目。我的应用程序只有相对较少的状态,需要为主要活动存储才能让应用程序正常恢复。此外,由于我的应用程序与一个web应用程序同步,我已经有了基于JSON的序列化逻辑,可以存储我想要保存的所有状态。使用SharedPreferences来存储序列化对象的相对小(〜几个KiB)字符串是否很好用?只使用内部存储并写入文本文件会更好吗?感谢您的建议!SharedPreferences用于序列化?
0
A
回答
2
共享首选项是保存这种数据的好方法。我不知道在内部存储中使用文件会更好。 (如果是很多数据,我会考虑在SD卡上使用文件。)
0
共享首选项用于存储名称值对,例如喜好。用来存储这些数据的格式是一个简单的XML文件:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="id1">text1</string>
<string name="id2">textb</string>
<string name="id3">text</string>
</map>
所以存放时,当你的字符串是只大几KB的产生(XML的)开销数据关系不和在同一结构中的大字符串。 在这种情况下,使用例如简单的JSON结构来存储小数据集更有效率(您仍然可以使用json库??)。
另一个缺点是,您无法将xml文件作为java File对象访问,因此您无法删除它们。
相关问题
- 1. @XmlTransient用于序列化但不用于反序列化?
- 2. 用于序列化的TypeConverter
- 3. 用于序列化和反序列化的xstream错误
- 4. 用于序列化和反序列化的类XmlRootAttribute
- 5. 关于SharedPreferences android
- 6. 如何序列化TreeMap并将其插入到SharedPreferences?
- 7. Android - 带有可序列化对象的SharedPreferences
- 8. 用于JSON的Javascript表单序列化
- 9. KeyValuePair不适用于JsonFx序列化
- 10. 用于序列化lua表的方法
- 11. read_attribute_before_type_cast似乎不能用于序列化:
- 12. 用于序列化的java中的XMLEncoder
- 13. 用于序列化的NameValueCollection的替代
- 14. vb.net序列化/反序列化引用
- 15. SharedPreferences和应用程序类
- 16. SharedPreferences交叉应用程序
- 17. 基于DB值的序列化和反序列化属性
- 18. 关于包含无法序列化的成员的序列化
- 19. 使用SharedPreferences进行Android初始化
- 20. 适用于iPhone的Xml序列化库应用程序
- 21. 用于Winform优化的异步序列化
- 22. SharedPreferences用于我的数据库
- 23. 用于存储阶段时SharedPreferences错误
- 24. SharedPreferences不适用于所有活动
- 25. onSaveInstanceState或SharedPreferences用于多个CheckBoxes?
- 26. Toast用于检索SharedPreferences返回空值
- 27. 由于错误使用broadcastreceiver中的Sharedpreferences
- 28. Sharedpreferences不适用于appWidgetProvider(getApplicationContext未定义)
- 29. 用JSON序列化
- 30. 用Json.NET序列化