【问题标题】:How to store small amounts of data for frequent lookup in android?如何在android中存储少量数据以进行频繁查找?
【发布时间】:2012-04-11 15:01:46
【问题描述】:

我有以下数据元组来描述我的应用程序的用户:

(userID, name, email, contact number) 

我想在整个应用程序中频繁访问这些数据。我的数据库中有一个联系人表,其中存储了这种类型的元组来描述 other 联系人。我不想存储描述用户的元组的原因是因为有一个属性来标记哪些数据是“自我”似乎很浪费,而且我直接将表用于 inviting 用户,所以我不希望用户在联系人列表中看到自己!我考虑过使用共享首选项来存储“自我”,但我可能会决定在未来包含更多数据,并且从几个 key:value 查找拼凑一个元组似乎是一个非常混乱的解决方案。存储这些数据“碎片”的最佳方式是什么,以便它们易于访问且不浪费?

谢谢你:)

【问题讨论】:

  • 此数据是否需要跨应用程序实例持久化?
  • 是的,数据通常用作“签名”,例如当用户发布数据时,此元组将与信息绑定,以便其他用户的应用程序可以将用户连接到他们电话簿中的联系人.

标签: android storing-data


【解决方案1】:

【讨论】:

  • 这将是最简单的实现,如果你想提高检索的便利性,你可以将它包装在一个带有访问器的类中。
  • 这很好@Rob,我希望有一个更简单的方法,因为我不想维护一个包装类,但它似乎是迄今为止最简单的选择。
  • @PurpleBlur 如果答案对您有帮助,您只需将其标记为最佳答案,谢谢
  • @MustafaIbrahim,我想给其他人一个回应的机会,我认为这么快将你的答案标记为正确是不公平的,因为我确实说过我不想在我的问题中使用共享偏好。
【解决方案2】:

以下是您存储数据的选择:

Android Data Storage

如果您不想使用共享首选项或数据库,我会尝试使用外部文件。 XML 和 JSON 文件都是可以轻松解析的不错选择。如果您尝试使用 JSON 文件,则可以在代码中使用 GSON 访问它。

【讨论】:

    【解决方案3】:

    另一种选择是创建一个 Application 的子类,其中包含用于变量的字段(和 get/set 方法)。在清单中的 <application> 标记中使用此类。然后使用例如((MyApplication)getApplicationContext()).getUserId()

    如果字段是静态的,您可能会发现它们在应用程序实例中持续存在。不过我没试过。

    【讨论】:

    • 我喜欢这种方法,但是直到应用程序第一次运行并建立与服务器的连接后才能确定数据,因此我需要以某种方式保留数据以便应用程序不会'不必每次启动都等待服务器。
    猜你喜欢
    • 1970-01-01
    • 2010-12-10
    • 2014-03-24
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 2018-10-01
    • 2018-07-02
    • 2014-01-21
    相关资源
    最近更新 更多