2016-06-07 2 views
0

СитуацияДержите Android локальной БД (Realm) в синхронизации с SQL Server с минимальными накладными расходами сети

Я стучал головой на этом на некоторое время. У меня есть локальная БД, использующая Realm с БД SQL Server. В моем приложении есть несколько областей, где данные могут быть изменены очень быстро (например, флажок). Пользователь имеет возможность переключать данные взад и вперед много раз в секунду. Так что скажем, что пользователь в вопросе секунды делает 10 изменений. То, что я пытаюсь избежать, это POSTing на SQL Server 10 раз за секунду. Вместо этого я бы хотел, чтобы какой-то пакетный процесс выполнялся каждые 5-10 секунд, чтобы синхронизировать данные, тем самым уменьшая количество сетевых вызовов.

Оговорка

Как можно обеспечить процесс синхронизации будет срабатывать, даже если пользователь убивает приложение до второго знака 5 ~ 10 или во время вызова POST выполняются.

  1. Вызов службы в onPause() текущей деятельности для запуска после факта? Гарантировано ли это ?

  2. Кэш данных и повторите попытку при следующем запуске приложения?

  3. Используйте GCM или какую-либо форму push-сервиса для запуска запланированной синхронизации?

Я понимаю, что это не серебряная пуля для этого, но если кто-то столкнулся с подобной озабоченности любые предложения/лучшие практики приветствуются, спасибо заранее!

+0

Я не думаю, что кто-нибудь может сказать вам правильное решение, так как есть компромиссы, связанные со всеми из них, и это зависит от того, насколько важны данные на устройстве , Я бы посмотрел в фоновой службе или JobScheduler. GCM обычно используется, если сервер имеет изменения, а не наоборот. –

+0

Спасибо @ChristianMelchior. Я учту это. Кстати, любите то, что вы, ребята, делаете там в Царстве. Так держать :) – Jraco11

ответ

0

попытаться использовать onchangesListener on царство. синхронизировать ваши обновленные или новые данные с сервером sql.

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