Android,下载数据和SQLite

时间:2012-12-10 01:11:37

标签: android sqlite

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

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

除了检查表中的行数是否大于0之外,我将如何进行此操作?我不太确定要搜索什么。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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