Как подать сигнал завершения синхронизации на Android SyncManager? - PullRequest
5 голосов
/ 26 апреля 2011

Я использовал cancelRequest () из моего SyncAdapter, непосредственно перед тем, как он выходит из своего потока, но затем я решил, что он предназначен только для использования другим объектом (UI), который хочет отменить синхронизацию в процессе (слишком долго К сожалению, и т. д.)

Теперь моя синхронизация считает, что всегда есть ожидающий запрос, который я использую для игнорирования новых запросов.

Другая вещь, которую я собираюсь сделать, - это поток слушателя в Сервисе, который прослушивает изменения в ContactsContract.AUTHORITY , чтобы он мог запустить синхронизацию моего агрегирования.

ОБНОВЛЕНИЕ: Этот поток слушателя протекает. Когда я покончу с этим, я выдаю .stop (), однако есть обработчик, который, я думаю, остается в живых и не дает сервису остановиться.

Я хотел бы отправить SyncResults некоторому объекту (например, SyncManager), который отслеживает такие вещи для ожидания, повторного использования и т. Д.

Чего мне не хватает?

Ответы [ 2 ]

10 голосов
/ 21 июня 2011

Чтобы уточнить ответ шунти на примере:

Вот пример установки SyncResult. Я просто использую его, чтобы установить количество исключений в поле статистики. В результате я вижу, что значок ошибки отображается для этого элемента синхронизации на экране «Аккаунты и синхронизация».

1 голос
/ 02 мая 2011

Вы можете использовать SyncResult Этот класс используется для передачи результатов операции синхронизации в SyncManager.На основе приведенных здесь значений SyncManager определит расположение синхронизации и необходимость планирования новой операции синхронизации в будущем

...