Кто-нибудь знает, как создать поставщика контента, в котором источником данных является веб-служба (например, упомянутые выше), а не база данных?
Примите во внимание, что следующий ответ можно считать довольно старомодным «ручным» методом.
Вы можете создать поставщик контента, который запрашивает веб-службу и преобразует полученный результат в курсор.
Чтобы запросить веб-службу, вы можете использовать HttpClient. и запрос HttpGet. Учебное пособие можно найти на MyKong о том, как это сделать. Для этого также есть несколько более новых альтернатив.
При анализе результатов поиска, которые вы получаете от веб-службы, вы можете создать свой собственный курсор с помощью MatrixCursor, добавляя строки с помощью addRow() для каждого отдельного результата.
Если вам нужно это сделать, убедитесь, что вы всегда вызываете своего контент-провайдера через фоновый поток (т. е. используя CursorLoader, AsyncTask или другую форму многопоточности), иначе ваша сетевая операция закончится в основном потоке пользовательского интерфейса.
person
stilkin
schedule
04.11.2014