Лучший способ загрузить внешние данные в android

Каков наилучший способ загрузки внешних данных в Android?

В настоящее время это то, что я делаю:

  1. Создайте веб-службу RESTful, которая возвращает массив JSON объектов (на сервере)
  2. В android вызывают HTTPGet и потребляют сервис
  3. Проанализируйте ответ JSON
  4. Используйте GSON для анализа ответа прямо в массив объектов
  5. Используйте массив объектов по мере необходимости.

Это оптимальный подход с точки зрения документации для Android?

В соответствии с презентацией приложений REST для Google I / O , вы должны сделать что-то вроде:

  1. Создайте веб-службу RESTful, которая возвращает JSON (или XML)
  2. Ваша деятельность (через AsyncTask или Loader) запрашивает ресурсы у ContentProvider
  3. ContentProvider возвращает курсор, содержащий данные, которые он кэшировал в локальном Sqlite Db
  4. ContentProvider просит службу (или SyncService) собирать свежие данные из веб-службы
  5. В вашей деятельности используется курсор для отображения данных в пользовательском интерфейсе.
  6. Служба вызывает HttpGet
  7. Служба анализирует ответ
  8. Сервис переносит новые данные в ContentProvider (который, в свою очередь, обновляет Sqlite db)
  9. ContentProvider вызывает notifyChange для информирования приложения, есть новые данные для Cursor, возвращаемые на шаге 3
  10. Ваша активность повторно запрашивает обновленный курсор из ContentProvider, а затем обновляет пользовательский интерфейс со свежими данными в курсоре
Intereting Posts
Jacoco Android createDebugCoverageReport не найден Наложение изображения (на холсте) на VideoView? Разница между ActivityUnitTestCase и ActivityInstrumentationTestCase2 Фрагмент MyFragment не привязан к действию RecyclerView java.lang.IndexOutOfBoundsException: обнаружена несогласованность. Недопустимая позиция позиции при возобновлении добавления фрагмента Разрешение IntelliJ SQLite, отклоненное на Android Lollipop, работало до Установите пользовательский прослушиватель для прослушивания по всему приложению Использование getApplication в методе onClick MediaRecorder "не удалось запустить -12" Как получить значение элемента Listview, который нажал на android? Эквивалентно push () или pop () для массивов? Как узнать состояние ввода в XMPP openfire с помощью Smack Что лучше подходит для воспроизведения mp3 / wav и изменения темпа (скорость звука) Android? Как настроить зависимость Maven для Guice 3.0 для использования без АОП? Android: неопределенный горизонтальный ход (диалог)