Как сообщить Android SyncManager о завершении синхронизации?

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

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

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

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

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

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

5
задан tshepang 30 July 2014 в 23:11
поделиться