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