2011-09-30 84 views
0

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

此致,

回答

3

所有共享首选项存储在/数据/数据/ [包名]/shared_prefs/[应用名称] .XML,所以,我认为没有基于aechitecture限制。

我不知道实际的限制,但我认为这是足以让你..

检查Shared Preference,供大家参考。

should I use SQLite or SharedPreferences. 

这是更好的,如果你需要存储将定期更改值使用的SQLite 。 也可以存储更多的数据量..

+0

我有使用SQLite这是“init光标窗口”的问题,我已经应用了所有可能的解决方案,但无法解决它。 –

+0

@AndroidGeek SQLite您可以参考http://developer.android.com/resources/tutorials/notepad/index.html以使用SQLite。它会为您提供更多关于SQLite的信息。 – Venky

0

SharedPreferences用于快速存储像单个字符串,设置,标志等值。SQLite数据库可以做同样的但有点重的责任,认为存储表诸如具有多个属性的客户数据以及能够搜索(SQL中的查询)的信息。

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

0

至于密钥大小的限制:我相信它只是一个字符串的最大大小。此处回答如下:Shared Preferences - max length of a single value

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

如果您的偏好值经常变化,我会考虑使用局部变量来跟踪当前的偏好设置,也许是一个全球性的单身人士课程。并在应用程序销毁/关闭之前将更改保存到磁盘。如果您不喜欢这个想法,那么请尝试使用SharedPreferences,但一定要使用SharedPreferences.Editor.apply()而不是SharedPreferences.Editor.commit()来保存首选项(异步应用保存到磁盘,同时提交保存)。