在Android中存储列表的最佳方式

时间:2015-05-07 09:41:54

标签: java android android-studio

我目前有一个ContentProvider,它从远程服务器获取资源列表。数据存储在SQLite数据库中。

从此列表中,用户可以将多个项目添加到他们的收藏夹中。然后他们的应用程序必须跟踪列表中的ID。跟踪收藏列表的最佳方法是什么?

我想到了几个......

  1. 在SQLite表中添加一个标记,以标记它是否已被收藏。
  2. 使用“共享首选项”
  3. 序列化ID列表并存储
  4. 使用其他SQLite数据库存储

4 个答案:

答案 0 :(得分:4)

这取决于。

我建议使用 variant 1 ,因为它会使您的数据结构变得简单,而您只需再添加一个标记。 (如果表格已经存在,这将要求您更改表格。)

我在已经创建的应用程序中也做了同样的事情,并且它的工作速度非常快。如果您在同一模型中加注星标,也可以获得相关信息,因此如果您需要此信息在详细视图中显示,则不需要任何其他逻辑

变体2是一个非常糟糕的主意,它会非常慢。 (与sqlite解决方案相比速度慢)

变体3.您不需要另一个SQLite数据库。您将不得不添加一个引用主数据模型的新模型。但这只有在你有1:n的关系时才有意义

答案 1 :(得分:1)

在我看来,第一个在SQlite表中有一个标记将行标记为收藏的是最好的选项。使用这种方法,您可以从数据库中读取一次数据,并且您知道哪些数据被标记为收藏夹。

答案 2 :(得分:1)

你说你需要跟踪一份好评列表?我假设这意味着你想要定期使用一个favourate列表。

每次你想要阅读favourates列表时,必须遍历整个表格,我有必要创建另一个包含所有标记为favourate的ID的表。您可以经常阅读此表,只需很少的费用。

此表中的ID将用作链接到主表的外键。

答案 3 :(得分:0)

我认为您的第一个想法是最好的,因为您不必再​​次匹配数据。