2011-08-03 130 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,你就知道你不需要改變你的數據庫。