Я спробую відповісти на всі ваші запитання, звернувшись до більшого питання: Як я можу синхронізувати дані між веб-сервером та додатком для Android?
Для синхронізації даних між вашим веб-сервером та додатком для Android потрібно кілька різних компонентів на вашому пристрої Android.
Постійне зберігання:
Ось як ваш телефон фактично зберігає дані, які він отримує від веб-сервера. Одним із можливих методів для цього є написання власного користувальницького ContentProvider, підкріпленого базою даних Sqlite. Гідний посібник для постачальника вмісту можна знайти тут: http://thinkandroid.wordpress.com/2010/01/13/writing-your-own-contentprovider/
ContentProvider визначає послідовний інтерфейс для взаємодії з даними резервування. Це також може дозволити іншим програмам взаємодіяти з вашими даними, якщо хочете. За вашим ContentProvider може стояти база даних Sqlite, кеш-пам'ять або будь-який довільний механізм зберігання даних.
Хоча я, безумовно, рекомендую використовувати ContentProvider з базою даних Sqlite, ви можете використовувати будь-який механізм зберігання даних на базі Java, який ви хотіли.
Формат обміну даними:
Це формат, який ви використовуєте для надсилання даних між веб-сервером та додатком для Android. Два найпопулярніші формати сьогодні - XML та JSON. Вибираючи формат, слід подумати про те, які бібліотеки серіалізації доступні. Я знаю, що існує фантастична бібліотека для серіалізації json під назвою gson: https://github.com/google/gson , хоча я впевнений, що подібні бібліотеки існують і для XML.
Служба синхронізації
Вам буде потрібно якесь асинхронне завдання, яке може отримати нові дані з вашого сервера та оновити мобільний контент, щоб відобразити вміст сервера. Ви також хочете повідомляти сервер щоразу, коли ви вносите локальні зміни у вміст і хочете відобразити ці зміни. Android надає шаблон SyncAdapter як спосіб легко вирішити цю модель. Вам потрібно буде зареєструвати облікові записи користувачів, і тоді Android здійснить багато магії для вас і дозволить автоматично синхронізувати. Ось хороший підручник: http://www.c99.org/2010/01/23/writing-an-android-sync-provider-part-1/
Щодо того, як ви визначаєте, чи записи однакові, зазвичай ви створюєте елементи з унікальним ідентифікатором, який ви зберігаєте як на пристрої Android, так і на сервері. Ви можете використовувати це, щоб переконатися, що ви посилаєтесь на ту саму посилання. Крім того, ви можете зберігати атрибути стовпців типу "updated_at", щоб переконатися, що ви завжди отримуєте найсвіжіші дані або випадково не пишете нещодавно записані дані.