Главная » Разработка для Android » ИСПОЛЬЗОВАНИЕ ПОСТАВЩИКОВ СОДЕРЖИМОГО в Android приложении

0

 

Когда приложения Android совместно применяют данные, они пользуются API поставщиков содержимого, чтобы предоставлять информацию, находящуюся в их базе данных. Например, поставщик содержимого, отвечающий за список контактов в Android, позволяет неограниченному количеству приложений многократно использовать контакты, хранящиеся в долговременной памяти на платформе Android. Просто активировав этот поставщик содержимого, приложение может интегрировать доступ к пользовательским контактам, сохраненным на локальном устройстве и синхронизированным с облаком Google. Приложения могут записывать и считывать данные, относящиеся к поставщикам содержимого, не предоставляя собственный код, применяемый для управления базой данных. Таким образом, поставщики содержимого предоставляют разработчику замечательные возможности, позволяющие с легкостью писать приложения, которые обладают усложненными механизмами управления данными. Как правило, в таких приложениях практически не приходится писать собственного кода, обслуживающего долговременное хранение информации.

API поставщиков содержимого позволяет клиентским приложениям запрашивать у операционной системы нужные данные при помощи универсального идентификатора ресурса (URI) – подобно тому как браузер запрашивает информацию из Интернета. Клиент не знает, какое именно приложение будет предоставлять данные в ответ на запрос по URI. Клиент просто предоставляет URI операционной системе, и уже сама платформа должна запустить подходящее приложение, чтобы предоставить требуемый результат. Платформа также предоставляет механизм разрешений, позволяющий клиентам ограничивать доступ к данным поставщика содержимого.

API поставщика содержимого предоставляет к совместно используемой информации полный доступ для создания, считывания, обновления и удаления данных. Это означает, что приложения могут использовать запросы, передаваемые по URI, для следующих целей:

создавать новые записи;

получать одну, две записи или ограниченное множество записей;

обновлять записи;

удалять записи.

Мы покажем, как написать собственный поставщик содержимого. Для этого мы изучим внутренние механизмы поставщика содержимого SimpleFinchVideoContentProvider, который возьмем в качестве примера. Он входит в дерево исходников Finch. Все ссылки на файлы содержатся в исходном каталоге. То есть когда мы говорим в этом разделе о файле AndroidManifest.xml, то имеем в виду файл $(FinchVideo)/AndroidManifest. xml. Этот код мы используем, чтобы объяснить, как создается поставщик содержимого. Для этого мы реализуем каждый из методов, которые требует определить основной API поставщиков содержимого – класс ContentProvider. Мы также расскажем о том, как интегрировать в этот поставщик содержимого базу данных SQLite. Будет описано, как реализовать базовую функцию поставщика содержимого, которая предназначена для ассоциирования URI, указывающих на данные из строк базы данных. Вы увидите, как в поставщике содержимого инкапсулированы функции долговременного хранения данных и как он позволяет приложению совместно использовать данные между несколькими процессами, когда вы объявляете свой поставщик в файле AndroidManifest. xml. Мы покажем, как привязывать данные поставщика содержимого к компонентам пользовательского интерфейса Android, и завершим, таким образом, обсуждение архитектуры MVC («Модель-вид-контроллер»), о которой мы до сих пор говорили в книге. Наконец, мы создадим активность для просмотра данных, которая будет автоматически обновляться в ответ на изменения, происходящие с данными.

Там мы покажем, как расширить и оптимизировать саму концепцию поставщика содержимого. В процессе работы вы научитесь извлекать максимальную пользу из API поставщика содержимого, чтобы обеспечить интеграцию сетевых сервисов с передачей состояния представления (RESTful). Такая простая архитектура позволяет избежать многих ошибок, распространенных в мобильном программировании, даже притом, что она строится только на базовых компонентах Android. Вы увидите, что такой подход логически выводит нас к созданию мобильной архитектуры, позволяющей значительно повысить надежность и производительность приложений Android.

Мы подробно изучим приложение для просмотра списков видео вместе с выводом метаданных, которое позволяет в упрощенном виде проиллюстрировать данную архитектуру. Это приложение использует предложенный нами подход, выполняя загрузку, синтаксический разбор и кэширование записей о видеороликах с YouTube, получаемых от веб-службы с передачей состояния представления, расположенной по адресу http://gdata.youtube.com. Мы просто воспользуемся gData в качестве примера RESTful-службы, которую сможем интегрировать в поставщик содержимого Android. Пользовательский интерфейс приложения будет применять поставщики содержимого для динамического отображения записей о видео, по мере того как они будут загружаться из сети и проходить синтаксический разбор. Этот подход можно будет использовать для интеграции множества веб-сервисов, доступных в Интернете, в вашем приложении на основе Android. Кстати, по ссылке gData имеется отличный демонстрационный пример от Google, мы советуем вам с ним ознакомиться.

Источник: Android. Программирование на Java для нового поколения мобильных устройств

По теме:

  • Комментарии