Android SharedPreferences限制

时间:2011-09-30 12:21:38

标签: android sharedpreferences

我正在搜索最大的Android SharedPreferences键,值对但找不到任何好的答案。其次,我想问一下,如果我有一个键是什么是它的字符串值限制。可以放入多少个角色。如果我需要经常选择值更改,我应该使用SQLite还是SharedPreferences。  请给我一些好的资源。

此致,

4 个答案:

答案 0 :(得分:4)

所有共享首选项都存储在 / data / data / [package name] / shared_prefs / [app name] .xml 中,所以我认为没有基于aechitecture的限制。

我不知道实际限制,但我认为这对你来说已经足够了..

检查Shared Preference以供参考。

 should I use SQLite or SharedPreferences. 

如果您需要存储将定期更改的值,那么使用 SQLite 会好得多。 您还可以存储更多数据..

答案 1 :(得分:1)

关注Android Developer reference似乎key, value and node name 每个都定义了最大值。

如果您需要更改许多相关密钥对,我建议creating a simple SQLite database,但如果您只使用几对,则SharedPreferences可能不是一个糟糕而快速的解决方案。

答案 2 :(得分:0)

SharedPreferences用于快速存储单个字符串,设置,标志等值.SQLite数据库可以执行相同的操作,但更重要的是,考虑存储信息表,如具有多个属性的客户数据,并能够搜索(SQL中的查询)。

所以答案是,“这取决于你想要存储什么”东西“?如果是用户设置,那么SharedPreferences快速而简单。如果它是一组记录,那么SQLite数据库可能更有意义。

答案 3 :(得分:0)

关于密钥大小限制:我认为它只是字符串的最大大小。此处也回答:Shared Preferences - max length of a single value

最大键/值对限制:usingShared首选项这些值存储在.xml文件中,如上面的答案中所述,您可以拥有多个.xml sharePreference文件。我认为尺寸限制受应用程序的大小或使用您的应用程序在设备上可用的存储空间的限制。

如果你的偏好值经常变化,我会考虑使用局部变量来跟踪当前的偏好集,也许是一个全局单例类。在销毁/关闭应用之前保存对磁盘的更改。如果你不喜欢这个想法,那么尝试使用SharedPreferences,但一定要使用SharedPreferences.Editor.apply()而不是SharedPreferences.Editor.commit()来保存首选项(异步应用保存到磁盘,同步提交保存)。