Ответ 1
Вы должны посмотреть проект SampleSyncAdapter в демонстрациях Android SDK (Перенос данных с помощью адаптеров синхронизации). Он показывает вам, как выполнять синхронизацию "стиль Android", которая не требует взаимодействия с пользователем, постоянно нажимая кнопку синхронизации.
Кроме того, вам нужно написать серверное программное обеспечение, которое может предоставить вашему SyncAdapter "дельта" всех изменений со времени последнего коммита. Самый простой подход заключается в сохранении "последней синхронизированной" метки времени в вашем приложении, которая должна поступать с сервера, иначе вы можете попасть в проблему из-за разницы во времени между клиентом и сервером. Нормализовать все отметки времени как GMT или любой часовой пояс по вашему выбору, но придерживайтесь этого решения. Если ваше приложение должно отображать отметку времени в локальное время, вам необходимо использовать Java Calendar и TimeZone для преобразования нормированной метки времени в локальное время.
Кроме того, ваше приложение также должно помечать измененные локальные записи как "грязные", поэтому ваш SyncAdapter знает, что ему необходимо загрузить эти измененные или новые записи на сервер.
Для вашего серверного программного обеспечения необходимы следующие минимальные функции:
- Обновить существующую функцию записи.
- Добавить новую запись функции
- Получить обновленные записи с момента последней синхронизации (приложение предоставляет отметку времени)
- Получить новые записи с момента последней синхронизации (приложение предоставляет отметку времени)
Вы также можете прочитать некоторые API Google (например, Календарь Google), чтобы получить представление о том, как все это работает и как создать интерфейс API-интерфейса сервера для связи.