0

我正在制作一个应用程序,它必须下载一些数据,解析它并将其存储在 SQLite 数据库中。但是,我遇到了一个问题,即每次启动应用程序时都会执行下载任务(异步任务)并不断将重复数据附加到数据库中,因此我获得了相同数据的多个实例。

如果数据库中有值,我只想执行下载任务,但如果服务器上的数据文件更新,我仍然希望能够运行下载任务。

除了检查表中的行数是否大于 0,我该怎么做?我不确定要搜索什么。任何帮助,将不胜感激!

4

2 回答 2

1

每个覆盖面都应该有一个唯一的 ID。
加载数据时,检查唯一 ID 是否在数据库中,
如果存在则更新行。
如果它不存在添加它(追加)。
如果您控制网站中的数据库,则可以在数据库更新时放置一个您更新的标志。因此,在读取数据之前,请检查您的标志。如果更新加载新数据并将新数据附加到数据库。

于 2012-12-10T01:22:12.443 回答
0

对于应用程序的本地部分:如果对该数据库的查询返回多行,您可以根据需要轻松更新数据。这很容易使用游标并在执行查询后获取其计数。如果您不想重复,请在确保下载任务已从远程源检索数据后删除数据库。这样一来,您将不会有重复项,并且您将确保在出现问题时不会意外删除数据库。

对于远程源:您可以启用推送通知并在数据库中发生更改后发送通知。因此,通过发送通知,您可以触发一个服务,该服务将下载新数据并正确解析它。

于 2012-12-10T01:21:56.870 回答