2012-01-25 3 views
1

Я разрабатываю приложение для Android как «доказательство концепции» для нашей компании. Если им это нравится и думает, что стоит инвестировать, мы перейдем к более крупным вещам. Я пытаюсь понять лучший/самый практичный подход для этого ..... основы приложения будут подключаться к нашей БД и отображать информацию о конкретном клиенте. Пока, скажем, мы будем извлекать данные только из 3-4 таблиц (но в будущем их может быть 10+). Если приложение не имеет интернет-соединения, оно должно использовать локальную БД. Каков наилучший подход для этого? Вот что я думал и хотел бы, если возможно, ввода/предложения:подход для синхронизации базы данных приложений Android с сервером db?

1.) Приложение работает проверяет подключение к Интернету. Если существует, проверьте версию db (как через веб-службу?). Если сервер db является более новым, получите последние данные. Если нет Интернета, используйте локальный db. 2.) приложение анализирует данные и отображает их.

Если это так, то не может быть никаких изменений в веб-службе, которые добавили бы поля в результат без изменения приложения. Есть ли способ для приложения анализировать поля независимо от того, сколько полей есть?

Я прочитал и просмотрел учебник по Google с базами данных и т. Д. (Notepad tutorial), но похоже, что имена столбцов жестко закодированы в классе разбора, чего я надеялся избежать.

Извините, если это сбивает с толку, но я знаю, что мне нужно мое приложение, чтобы использовать локальный db для чтения данных, я также знаю, что приложение должно получать данные с сервера, когда это возможно (с помощью кнопки onCreate или refresh) и копировать это локально .... Копирование локально - это та часть, с которой у меня возникли проблемы с пониманием. Я думаю ... нет способа сказать «выйти и получить этот результат и отобразить его», зная, что эти результаты могут означать 5 полей в первый раз или 1 следующий.

Любая помощь/руководство очень ценится!

ответ

0

Возможно, вы захотите использовать базу данных SQLLite для локального хранения данных, ContentProvider для обеспечения доступа CRUD к db и SyncAdapter для синхронизации с вашим сервером, когда это возможно. Адаптер синхронизации также записывается в БД через ContentProvider. См. Образец SampleSyncAdapter в SDK для примера того, как это работает. Вы будете внедрять свой собственный ContentProvider, но образец просто использует поставляемый вами контент ContentProvider от компании Android.

http://developer.android.com/resources/samples/SampleSyncAdapter/index.html

+0

Благодарим за ответ robertly. Я буду читать ContentProvider и другие классы, которые вы упомянули. Это наверняка поможет мне на правильном пути. – Robert

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