0

我对 Android 开发相当陌生,并且正在尝试通过一些爱好项目来学习。我的应用程序需要为主 Activity 存储相对少量的状态,以便应用程序正常恢复。此外,由于我的应用程序与 web 应用程序同步,我已经为我可能想要保存的所有状态包含了基于 JSON 的序列化逻辑。使用 SharedPreferences 存储序列化对象的相对较小(〜几 KiB)的字符串是否很好?仅使用内部存储并写入文本文件会更好吗?感谢您的建议!

4

2 回答 2

2

共享首选项是保存此类数据的好方法。我不知道在内部存储中使用文件会更好。(如果数据很多,我会考虑使用 sdcard 上的文件。)

于 2011-02-09T04:59:34.927 回答
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 对象访问,因此您无法删除它们。

于 2011-03-02T14:08:46.197 回答