0

这就是我现在执行同步的方式:

 * get preference "timestamp" and save to variable TIMESTAMP
 * save current time to preference "timestamp"      (2)
 * query server side items with update time bigger than TIMESTAMP
 * for each item
 *      compare with local item's per item update_time
 *      if server side is newer
 *          update local
 *      else if local is newer
 *          set item update time to now             (1)
 *          upload
 *          save back
 *      else if equal
 *          do nothing
 * 

问题是,下次同步时,最后一次同步的项目会出现在“什么都不做”部分,但我的应用是移动应用,所以有很大的数据浪费。

我考虑过将item的更新时间设置TIMESTAMP为一个客户端在两次之间检查了服务器,这个项目被遗漏了。

我正在使用 Google Tasks API,我无法更改服务器端的实现。

有什么建议么?

4

1 回答 1

0

由于时区,使用时间戳执行此操作可能会导致一些问题。也许为服务器端的更新定义一个 id 并将您的应用程序当前的最大数据版本 id 与服务器的比较可以更可靠和高效

于 2012-11-17T10:37:16.003 回答