将Android联系人与服务器同步 - 同步算法

时间:2011-08-03 13:07:17

标签: android algorithm contacts sync android-syncadapter

我想将我的Android设备的联系人与服务器同步(单向同步:根据设备的联系人DB更新服务器)。

我见过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()。

但是,我不能找到同步算法的示例。 例如,如何仅同步先前同步的差异?我应该为最新的同步联系人保留缓存,并将其与当前联系人DB进行区分吗?

1 个答案:

答案 0 :(得分:0)

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

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

  1. 首先,获取数据集中行的索引,并将参数作为请求的一部分传递,以过滤掉自日期以来更改的行,然后仅获取这些特定行。
  2. 如果REST API不支持

    1. 使用自己的网址抓取每一行,并使用HTML header fields仅识别已更改的内容。例如,请参阅“If-Modified-Since”字段。这将告诉服务器,如果您获取的页面未更改,则不打算返回它,而是发送304(未修改)响应。如果是304,则表示您不需要更改数据库。