2016-05-31 1 views
0

CursorLoaders와 함께 ContentProvider를 사용할 때 자신 만의 ContentObserver를 만들 필요가 없다는 것을 알았습니다. 커서 # setNotificationUri() 또는 getContext(). getResolver(). notifyChange를 호출하면됩니다. 이제 SyncAdapter를 사용하여 데이터 변경시 동기화를 수행하고 이에 대한 요구 사항에 해당 URI에 대한 ContentObserver가있는 것입니다. 제 질문은 데이터 변경을 수신하는 앞서 말한 방식에 어떤 영향을 미칩니 까?ContentObserver가없는 SyncAdapter

답변

1

SyncAdapter를 사용할 때 ContentObserver이 동기화를 트리거 할 필요가 없습니다. notifyChange (Uri uri, ContentObserver observer, boolean syncToNetwork)에 전화 할 때 syncToNetwork을 true로 설정하십시오.

안드로이드는 supportsUploadingtrue으로 설정되고 자동으로 동기화되도록 구성된이 기관의 모든 SyncAdapter를 자동으로 호출합니다.

+0

하지만 cursor.setNotificationUri 메서드에는 syncToNetwork 매개 변수가 없습니다.이 경우 어떻게해야합니까? – lll

+0

그건 상관 없습니다. 변경 사항에 대해서만 커서를 알리기 때문에 UI가 즉시 업데이트 할 수 있습니다. ContentProvider는 동기화가 필요할 수있는 항목이 변경 될 때마다 (즉, 삽입, 업데이트 및 삭제 작업에만 설정하면되므로) 'syncToNetwork'를'true '로 설정해야합니다. SyncAdapter에 의해 무언가가 변경되면 (루프가 발생할 수 있으므로) true로 설정하면 안됩니다. – Marten

+0

나는 감사합니다. .. – lll

관련 문제