2016-11-06 2 views
-1

Я разрабатываю приложение для Android, имеющее список, я бы хотел, чтобы этот список синхронизировался между несколькими пользователями - можно ли это сделать без стороне сервера?Синхронизация данных между пользователями в Android-приложении без сервера

+0

Вы можете сохранить этот список в файле на складе и синхронизировать этот файл с другими устройствами. –

ответ

-2

Синхронизация данных между вашим веб-сервером и андроид-приложением требует наличия на вашем устройстве Android нескольких компонентов.

Persistent Storage:

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

ContentProvider определяет согласованный интерфейс для взаимодействия с вашими сохраненными данными. Это может также позволить другим приложениям взаимодействовать с вашими данными, если вы хотите. За вашим ContentProvider может быть база данных Sqlite, кэш или любой произвольный механизм хранения.

Хотя я бы рекомендовал использовать ContentProvider с базой данных Sqlite, вы могли бы использовать любой механизм хранения на основе Java, который вы хотели.

Interchange Формат данных:

Этот формат используется для передачи данных между веб-сервером и андроид приложения. Двумя самыми популярными форматами в наши дни являются XML и JSON. При выборе формата вы должны подумать о том, какие библиотеки сериализации доступны. Я знаю, что есть фантастическая библиотека для сериализации json под названием gson: http://code.google.com/p/google-gson/, хотя я уверен, что подобные библиотеки существуют для XML.

Служба синхронизации

Вы хотите какой-то асинхронной задачи, которые могут получить новые данные с сервера и обновить мобильный контент, чтобы отразить содержание сервера. Вы также захотите уведомить об этом сервер при внесении локальных изменений в контент и хотите отразить эти изменения. Android обеспечивает шаблон SyncAdapter как способ легко решить этот шаблон. Вам нужно будет зарегистрировать учетные записи пользователей, а затем Android выполнит много волшебства для вас и позволит вам автоматически синхронизировать. Вот хороший учебник: http://www.c99.org/2010/01/23/writing-an-android-sync-provider-part-1/

Что касается того, как вы определяете, совпадают ли записи, обычно вы создадите элементы с уникальным идентификатором, который вы храните как на устройстве Android, так и на сервере. Вы можете использовать это, чтобы убедиться, что вы ссылаетесь на одну и ту же ссылку. Кроме того, вы можете хранить атрибуты столбцов, такие как «updated_at», чтобы убедиться, что вы всегда получаете самые свежие данные или случайно не записываете новые записанные данные.

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