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

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

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

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

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

Благодарю.

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

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

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

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

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

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

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