Подтвердить что ты не робот

Как синхронизировать базу данных Android с онлайн-сервером SQL?

Я разрабатываю приложение для Android, которое хранит различные типы данных во встроенном SQL Light, предоставляемом платформой Android.

Внутри приложения я поместил кнопку "Синхронизация", которая должна синхронизировать данные между локальной базой данных SQL Light с базой данных Online SQL Server на моем сервере.

Каково обходное решение для этого? Эта функция может быть найдена в Календаре Google, где вы можете просматривать события календаря на своем мобильном устройстве, а когда вы добавляете новое событие и синхронизировать данные, вы можете просматривать обновленные данные, перейдя в свою онлайн-учетную запись.

Примечание. Я не хочу централизовать мою базу данных в Интернете, потому что я также хочу предоставить мобильным пользователям возможность использовать приложение без подключения к Интернету.

Спасибо.

4b9b3361

Ответ 1

Вы должны посмотреть проект SampleSyncAdapter в демонстрациях Android SDK (Перенос данных с помощью адаптеров синхронизации). Он показывает вам, как выполнять синхронизацию "стиль Android", которая не требует взаимодействия с пользователем, постоянно нажимая кнопку синхронизации.

Кроме того, вам нужно написать серверное программное обеспечение, которое может предоставить вашему SyncAdapter "дельта" всех изменений со времени последнего коммита. Самый простой подход заключается в сохранении "последней синхронизированной" метки времени в вашем приложении, которая должна поступать с сервера, иначе вы можете попасть в проблему из-за разницы во времени между клиентом и сервером. Нормализовать все отметки времени как GMT или любой часовой пояс по вашему выбору, но придерживайтесь этого решения. Если ваше приложение должно отображать отметку времени в локальное время, вам необходимо использовать Java Calendar и TimeZone для преобразования нормированной метки времени в локальное время.

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

Для вашего серверного программного обеспечения необходимы следующие минимальные функции:

  • Обновить существующую функцию записи.
  • Добавить новую запись функции
  • Получить обновленные записи с момента последней синхронизации (приложение предоставляет отметку времени)
  • Получить новые записи с момента последней синхронизации (приложение предоставляет отметку времени)

Вы также можете прочитать некоторые API Google (например, Календарь Google), чтобы получить представление о том, как все это работает и как создать интерфейс API-интерфейса сервера для связи.