移动设备与webservice脱机同步

时间:2014-05-13 13:56:40

标签: android web-services sync

我正在为我正在编写的应用程序开发Web服务。我想让应用程序离线访问。

我制作了这个webservice,这样如果你从webservice请求JSON,你可以给出一个日期: /颜色/颜色/日期/ 2014-03-01T12:00 /

如果您没有提供日期,您将获得数据库中的所有内容并且处于活动状态。如果您给出日期,您将只获得在该日期之后更新的所有内容。

现在我的问题是,如果我从应用程序的Web服务中删除某些内容,则它将不会被同步,其他设备将永远不会知道它被删除。

我可以使用一个字段,我说删除了一条记录,但我需要保留每条记录,但我无法删除任何记录。

有更好的方法进行同步吗?或者最好的方法是什么?

2 个答案:

答案 0 :(得分:3)

我认为除非您发送删除该条目的信息,否则无法检测已删除条目的更改。您在表中使用整数类型设置字段的最佳做法,然后您可以在更新时设置此值。你不必只设置1或0,你可以使用更大的数字(例如我在那些条目上使用30,我在20日3月删除了,在这一天是一个很大的代码逻辑更改。之后我知道什么时候状态整数是30,然后我在那个日期之后删除了这一行。)这可能是一个愚蠢的例子,但你可以实现自己的逻辑。

答案 1 :(得分:1)

这取决于进行更改时更新其余设备的重要性。

如果它很关键,那么值得实施推送通知或类似于每个设备的东西,让他们知道更新的情况。否则,您只需让其他设备轮询服务器以自行检查更改,此轮询的频率或触发器将再次取决于它们获得更新的重要程度。 Maybes他们只需要在访问某个活动时进行更新,因此在这种情况下,您只会在到达该活动的onResume()事件时进行轮询

<强>更新

如果您不需要保留已删除记录的历史记录,那么为什么不能删除它,然后当其他设备更新时,您清除所有内容并下载新设置?如果这太过密集,您将需要引用id,您可以在表中执行或在字段中使用特殊值(如null,0或-1)来标记它。否则将无法引用它