Предотвратить петлю сетевой синхронизации при синхронизации из сети в Android ContentProvider

Я пишу свой собственный ContentProvider, который будет синхронизироваться с веб-службой с помощью SyncAdapter.

Проблема возникает, когда адаптер синхронизации изменяет данные поставщика контента, провайдер запускает сетевую синхронизацию при внутреннем вызове getContentResolver (). NotifyChange, вызывая цикл синхронизации.

notifyChange с флагом сетевой синхронизации требуется, когда клиент приложение вносит изменения, но этого следует избегать при изменении адаптера синхронизации.

Как можно внутри контент-провайдера легко определить, используется ли он клиентским приложением (которое должно запускать сетевую синхронизацию при модификации) или адаптером синхронизации (который не должен запускать сетевую синхронизацию).

В настоящее время я использую разные CONTENT_URI (адаптер синхронизации получает доступ к данным с помощью CONTENT_URI_NO_SYNC, а клиентские приложения с помощью CONTENT_URI), чтобы иметь возможность различать два типа доступа и настраивать сеть флаг синхронизации соответственно.

14
задан jcwenger 25 February 2014 в 14:54
поделиться