2011-08-03 7 views
2

내 안드로이드 장치의 연락처를 서버와 동기화하고 싶습니다 (단방향 동기화 : 장치의 연락처 DB에 따라 서버 업데이트).안드로이드와 서버 동기화 알고리즘을 동기화

나는 SampleSyncAdapter의 예를 본 적이

: http://developer.android.com/resources/samples/SampleSyncAdapter/index.html

과 퍼즐 조각을 이해하는 아주 좋은 블로그 : http://ericmiles.wordpress.com/2010/09/22/connecting-the-dots-with-android-syncadapter/

내가 동기화 로직 자체가 오버라이드 (override)에 있어야하는데 이해를 AbstractThreadedSyncAdapter를 확장하는 클래스의 onPerformSync().

그러나 동기화 알고리즘에 대한 예는 찾을 수 없었습니다. 예를 들어 이전 동기화의 diff를 어떻게 동기화합니까? 최신 동기화 된 연락처에 대한 캐시를 유지하고 현재 연락처 DB와 비교해야합니까?

답변

0

대부분의 작업을 서버로 오프로드하는 것이 가장 좋습니다.

REST API 유형의 서버에 대해 이야기하는 경우 두 가지 옵션이 있습니다.

  1. 먼저 데이터 집합의 행 인덱스를 가져 와서 요청의 일부로 매개 변수를 전달하여 날짜 이후 변경된 행을 필터링 한 다음 해당 특정 행만 가져옵니다. 즉 자신의 REST API에서 지원되지 않는 경우

,

  1. 는 자신의 URL에서 각 행을 가져 오기 및 변경된 내용 만 확인하는 HTML header fields를 사용합니다. 예를 들어 "If-Modified-Since"필드를 참조하십시오. 이렇게하면 서버에 가져온 페이지가 변경되지 않았지만 반환하지 않고 304 (수정되지 않은) 응답을 보냅니다. 그것이 304라면 DB를 변경할 필요가 없다는 것을 알고 있습니다.
관련 문제