【问题标题】:Android SharedPreferences LimitAndroid SharedPreferences 限制
【发布时间】:2011-11-28 10:40:31
【问题描述】:

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

你的,

【问题讨论】:

    标签: android sharedpreferences


    【解决方案1】:

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

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

    检查Shared Preference 以供参考。

     should I use SQLite or SharedPreferences. 
    

    如果您需要存储会定期更改的值,最好使用 SQLite。 你也可以存储更多的数据..

    【讨论】:

    • 我在使用“初始化光标窗口”的 SQLite 时遇到问题,我已经应用了所有可能的解决方案,但无法解决。
    • @AndroidGeek SQLite 你可以参考developer.android.com/resources/tutorials/notepad/index.html 来使用SQLite。它将为您提供有关 SQLite 的更多信息。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      SharedPreferences 用于快速存储单个字符串、设置、标志等值。SQLite 数据库可以做同样的事情,但任务更重一些,例如存储具有多个属性的客户数据等信息表并能够搜索(SQL 中的查询)。

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

      【讨论】:

        【解决方案4】:

        至于密钥大小限制:我相信它只是字符串的最大大小。也在这里回答:Shared Preferences - max length of a single value

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-03-27
          • 2014-06-12
          • 1970-01-01
          • 2011-11-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-07-25
          相关资源
          最近更新 更多