我對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. JsConfig.EmitLowercaseUnderscoreNames用於反序列化
- 4. 將可序列化的對象列表保存到sharedPreferences中
- 5. 用於序列化和反序列化的xstream錯誤
- 6. 用於序列化和反序列化的類XmlRootAttribute
- 7. 序列化/反序列化基於使用傑克遜
- 8. 關於SharedPreferences android
- 9. Android - 帶有可序列化對象的SharedPreferences
- 10. 如何序列化TreeMap並將其插入到SharedPreferences?
- 11. SharedPreferences不適用於EditText
- 12. Angularjs相當於序列化
- 13. 序列化用於緩存的CloudBlockBlob
- 14. Json.Net用於序列化對象圖
- 15. 用於序列化的java中的XMLEncoder
- 16. NUnit的用於序列化測試
- 17. 用於擴展類的Java序列化
- 18. 用於JSON的Javascript表單序列化
- 19. KeyValuePair不適用於JsonFx序列化
- 20. read_attribute_before_type_cast似乎不能用於序列化:
- 21. 用於序列化的DOM或SAX
- 22. 用於序列化lua表的方法
- 23. 用於序列化的NameValueCollection的替代
- 24. Msgpack通用序列化/去序列化
- 25. vb.net序列化/反序列化引用
- 26. 通緝:獨立於序列化格式的C#序列化庫
- 27. 關於包含無法序列化的成員的序列化
- 28. 基於DB值的序列化和反序列化屬性
- 29. SharedPreferences和應用程序類
- 30. SharedPreferences交叉應用程序