Как обработать RESTful-обновление удаленного сервера с помощью SyncAdapter

Я смотрел выступление Google I / O REST и читал слайды:http://www.google.com/events/io/2010/sessions/developing-RESTful-android-apps.html

Мне все еще немного неясно, как правильно обрабатывать, скажем, ошибку обновления, выданную удаленным сервером. Я реализовал свой собственный ContentProvider и SyncAdapter. Рассмотрим этот сценарий:

Обновите контактную информацию пользователя через вызов REST:

Запросите обновление с помощью ContentResolver.Мой ContentProviderнемедленно обновляет локальную базу данных приложения Sqlite и запрашивает синхронизацию (в соответствии с рекомендациями в докладе Google I / O).Мой SyncAdapter.onPerformSync () вызывается и выполняет вызов REST для обновления удаленных данных.Удаленный сервер отвечает «ОШИБКА: Неверный номер телефона» (например).

Мой вопрос заключается в том, каков наилучший способ для SyncAdapter сообщить моему ContentProvider, что это изменение необходимо сохранить из локальной базы данных приложения, а также сообщить моей активности, что запрос на обновление не выполнен (и передать возвращенные сообщения об ошибках). с сервера)?

Моя активность должна отображать счетчик хода выполнения в ожидании результата и знать, был ли запрос успешным или нет.

Для обновления базы данных локального приложения содержимым с сервера шаблон SyncAdapter имеет для меня полный смысл, и у меня это работает нормально. Но для обновленийиз приложениев сервер, я не могу найти хороший способ справиться с вышеописанным сценарием.

И еще одна вещь ...;)

Скажем, я вызываю ContentResolver.notifyChange (uri, null, true); изнутри метода update () моего ContentProvider.true вместе сandroid:supportsUploading="true" вызовет onPerformSync () моего SyncAdapter. Отлично, но внутри onPerformSync (), как мне узнать, какой URI мне следует синхронизировать? Я не хочу просто обновлять всю мою БД каждый раз, когда я получаю запрос синхронизации. Но вы даже не можете передать Bundle в notifyChangeCall () для передачи в onPerformSync ().

Все примеры, которые я видел в onPerformSync (), были настолько просты, и без использования собственного ContentProvider, есть какие-нибудь реальные примеры? И документы немного птичьего гнезда. Вирджил Добжански, сэр, вы оставили меня в ручье без весла.

Ответы на вопрос(2)

Ваш ответ на вопрос