ContentProvider с WebService в качестве источника

Сценарий следующий:

  • У меня есть приложение для Android, которое в основном состоит из карты.
  • Это приложение запрашивает различные веб-сервисы, такие как Foursquare или Wikipedia, чтобы получить список местоположений и нанести их на карту.

Вопрос,

  • Кто-нибудь знает, как создать поставщика контента, где источником данных является веб-сервис (например, упомянутые выше), а не БД? Было бы здорово, если бы вы указали мне правильное направление.

Спасибо!


person androidtje    schedule 18.01.2011    source источник
comment
Я просто хочу сделать то же самое, но вместо того, чтобы напрямую запрашивать веб-службу, это будет делать поставщик контента. Таким образом, я мог использовать внешние приложения для подключения к различным веб-сервисам.   -  person androidtje    schedule 18.01.2011
comment
Дополнительные параметры ContentProviders для веб-служб упоминаются в stackoverflow.com /вопросы/4097686/   -  person Paul Verest    schedule 15.07.2014


Ответы (2)



Кто-нибудь знает, как создать поставщика контента, в котором источником данных является веб-служба (например, упомянутые выше), а не база данных?

Примите во внимание, что следующий ответ можно считать довольно старомодным «ручным» методом.

Вы можете создать поставщик контента, который запрашивает веб-службу и преобразует полученный результат в курсор.

Чтобы запросить веб-службу, вы можете использовать HttpClient. и запрос HttpGet. Учебное пособие можно найти на MyKong о том, как это сделать. Для этого также есть несколько более новых альтернатив.

При анализе результатов поиска, которые вы получаете от веб-службы, вы можете создать свой собственный курсор с помощью MatrixCursor, добавляя строки с помощью addRow() для каждого отдельного результата.

Если вам нужно это сделать, убедитесь, что вы всегда вызываете своего контент-провайдера через фоновый поток (т. е. используя CursorLoader, AsyncTask или другую форму многопоточности), иначе ваша сетевая операция закончится в основном потоке пользовательского интерфейса.

person stilkin    schedule 04.11.2014