2014-01-06 5 views
1

Я понимаю, что Content Резольвер принимает запросы от клиентов, и решает эти запросы, направляя их к Content Provider с отчетливым органом.Понимание поставщика контента и распознаватель

Я прошел через vogellas tutorial, в частности метод queryCalendar, и я заметил, что для Content Provider нет приглашений. Я вижу только код для Content резольвера:
ContentResolver cr = getContentResolver();

Почему не существует никаких вызовов для Content Provider?

+0

[Провайдеры контента и контент-реставраторы] (http://www.androiddesignpatterns.com/2012/06/content-resolvers-and-content-providers.html) –

ответ

0

Поскольку поставщик контента реализован самой системой Android. Если посмотреть в коде, вы увидите этот бит:

Uri uri = Calendars.CONTENT_URI; 

В Android системы, существует Content Provider где, который зарегистрирован для обработки запросов Content Provider для этого Ури.

Вкратце: вы будете сталкиваться только с поставщиками контента, если хотите предоставить некоторые данные другому приложению (конечно, никто не мешает вам использовать его в своем приложении). Затем вам нужно будет реализовать один из своих (и выставить его через Uri). Content Resolver - это то, что использует Uri для общения с Content Provider.

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

0

Вы видите вызовы ContentResolver, потому что ContentResolver отвечает за вызов методов ContentProvider и возврат данных.

Написано в official Android Guide on ContentProviders,

«Если вы хотите получить доступ к данным в контент-провайдера, вы используете объект ContentResolver в контексте вашего приложения для связи с провайдером в качестве клиента. Объект ContentResolver связывается с объект-поставщик, экземпляр класса, реализующего ContentProvider. Объект поставщика получает запросы данных от клиентов, выполняет запрошенное действие и возвращает результаты. "

Если вы хотите узнать поставщиков контента должным образом,

Следующие учебники лучшие учебники онлайн (наряду с официальным Android API Guide) для понимания того, как реализовать Content Providers правильно.

  1. Content Provider Basics

  2. How to Use Existing Content Providers in your app

  3. How to write your own custom Content Providers

Эти уроки помогли мне получить четкое представление о контент-провайдеров, и я не боюсь их больше! :) Надеюсь, они тебе тоже помогут!

P.S.После того, как вы закончите работу с поставщиками контента, вы, вероятно, захотите использовать Loaders для загрузки данных из поставщиков контента в свой пользовательский интерфейс. official Android tutorial on Loaders очень хорош для этого.

Смежные вопросы