2011-08-03 128 views
2

我想要将我的android设备的联系人与服务器同步(单向同步:根据设备的联系人数据库更新服务器)。与服务器同步Android联系人 - 同步算法

我见过的SampleSyncAdapter例如: http://developer.android.com/resources/samples/SampleSyncAdapter/index.html

和一个很好的博客在拼图理解件: http://ericmiles.wordpress.com/2010/09/22/connecting-the-dots-with-android-syncadapter/

据我所知,同步逻辑本身应该是在覆盖在扩展AbstractThreadedSyncAdapter的类中的onPerformSync()。

但是,我没有找到同步算法的示例。例如,如何仅同步来自先前同步的差异?我应该为最新的同步联系人保留一个缓存并将其与当前联系人数据库进行比较?

回答

0

理想情况下,您将大部分工作卸载到服务器。

如果您在谈论REST api类型的服务器,您有两种选择。

  1. 首先,进入你的数据集中获取行的索引,并传递一个参数,以过滤掉,因为日期更改的行请求的一部分,然后只取那些特定行。

如果不是由他们的REST API的支持,

  1. 在自己的网址提取每一行,并使用HTML header fields仅标识有什么变化。例如,请参阅“If-Modified-Since”字段。这将告诉服务器,如果你提取的页面没有改变,不用麻烦返回它,而是发送一个304(没有修改)的响应。如果它是304,你就知道你不需要改变你的数据库。