2013-12-02 6 views
1

Я очень новичок в android и пытаюсь понять db persistence.резервное копирование моей локальной базы данных/данных

Рассмотрим такой сценарий

  • на DEVICE1 локальной БД создана
  • он синхронизируется с Google через BackupAgent путем резервного копирования файла
  • дб на устройство2 файл БД восстанавливается и локальная БД теперь в синхронизации

Проблема, я думаю, что может произойти, если нет удаленного соединения. Тогда это могло произойти

  • на DEVICE1 локальной БД создана
  • он синхронизируется с Google через BackupAgent путем резервного копирования файла дб
  • на устройство2 предыдущий файл БД обновляется форума
  • устройство2 идет онлайн. Синхронизация с резервным агентом и изменениями в устройстве2 теряются

Существуют различные сценарии, в которых я думаю, что этот шаблон вызовет конфликты между устройствами. Я пропускаю более простой способ хранения и синхронизации данных между несколькими устройствами. Возможно, возможно, только хранить вещи на удаленной базе данных.

Как я уже сказал, я новичок в этом, поэтому любой совет будет очень принят.

Благодаря

ответ

2

docs От:

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

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

Когда вы запрашиваете резервную копию, агент не делает это немедленно. Он делает это в более позднее время на основе ряда различных параметров (таких как эффективность сети). Он обычно предназначен для хранения последней версии пользовательских настроек.

Если вам нужна синхронизация в режиме реального времени между устройствами, вам необходимо реализовать собственный бэкэнд или попробовать один из поставщиков услуг BAAS (Backend-As-A-Service), таких как Parse или Firebase.

+0

Спасибо @AnupCowkur, материал BAAS - это то, что я после. – RNJ

Смежные вопросы