2

我想将我的 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()。

但是,我无法找到同步算法的示例。例如,我如何只同步上一次同步的差异?我是否应该为最新同步的联系人保留缓存并将其与当前联系人数据库进行比较?

4

1 回答 1

0

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

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

  1. 首先,获取数据集中行的索引,并将参数作为请求的一部分传递以过滤掉自某个日期以来更改的行,然后仅获取那些特定的行。

如果他们的 REST API 不支持,

  1. 在其自己的 URL 中获取每一行,并使用HTML 标头字段来识别仅更改的内容。例如,参见“If-Modified-Since”字段。这将告诉服务器,如果您获取的页面未更改,请不要费心返回它,而是发送 304(未修改)响应。如果是 304,你知道你不需要改变你的数据库。
于 2011-10-19T13:53:46.500 回答