如果数据是新的,则仅从Web服务更新本地数据库中的数据

时间:2014-08-18 08:59:13

标签: c# android web-services sqlite asp.net-web-api2

我编写了一个C#Web API 2 Web服务,我想在我编写的Android应用程序中检索这些数据。

我希望在我的Android设备上有一个本地SQL数据库,用于存储来自Web服务的数据。

每当我的Android应用程序中使用数据时,我希望检查本地数据库数据是否是最新的,如果它不是,那么我希望从中检索最新数据网络服务。

我正在考虑以下事项:

  1. 每次将数据保存到本地数据库时,请将整数值保存为更新编号。
  2. 每当需要数据时,从本地数据库检索最新的更新编号,使用此更新编号向Web服务发送请求,并且只有在Web服务数据具有更新的更新编号时才返回数据。
  3. 这会运作良好吗?有没有比我的上述想法更好的解决这个问题的方法?是否存在可能发生的任何缺点或错误?

    提前致谢。

2 个答案:

答案 0 :(得分:2)

我的同步算法完全相同。就是这样。 我的Web服务方法获取日期时间参数,Web服务发送仅在该时间之后创建或修改的对象。

在移动端,我保持同步开始时间,并且对于每次同步,我发送先前的同步开始时间。 (顺便说一下,我在同步开始之前询问服务器的日期)

我不保持同步结束时间,因为某些数据可能会在同步开始后被修改。

答案 1 :(得分:0)

我在同步适配器中做了类似的事情,用户点击同步,它从网络订阅源获取数据并仅将更新的数据存储到sqlite中。

请参阅http://developer.android.com/training/sync-adapters/creating-sync-adapter.html

上提供的SyncAdapter.java同步适配器示例文件
相关问题