как написать провайдер асинхронного контента в Android

1

Я пишу поставщика контента, который предоставляет результаты поиска для других приложений. Поставщик контента отправляет запросы на сервер и анализирует ответ. Теперь он может работать успешно без асинхронных вызовов. Но если я хочу, чтобы поставщик асинхронного контента, создавая поток в функции query(). Затем возникает проблема, как я могу узнать, когда поток закончен и получил результаты. Потому что теперь я просто новый Thread и запускаю его, однако курсор не смог получить результаты. Кто-нибудь может мне помочь? Спасибо!

  • 0
    Вы можете использовать CursorLoader для достижения этой цели. Вы можете найти концепцию, объясненную здесь: mobile.tutsplus.com/tutorials/android/…
Теги:
asynchronous
android-contentprovider

1 ответ

1

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

  • 0
    Здесь представлен другой вариант: groups.google.com/group/android-developers/browse_thread/thread/… Идея состоит в том, чтобы просто информировать потребителей о том, что вызовы этого контент-провайдера должны происходить асинхронно, что делает асинхронное требование скорее проблемой приложения, чем проблема поставщика контента.
  • 0
    onChange где?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню