Метод query в Android додатку

Після зіставлення вхідного URI з контентом метод query нашого постачальника вмісту виконує відповідну вибірку з бази даних, доступної для читання Це завдання делегується SQLi teDatabase query, після чого результати повертаються у вигляді обєкта Cursor (курсора бази даних) Курсор містить всі рядки бази даних, які підходять під опис аргументом (URI) Після того як ми зробимо запит, діючий в Android механізм поставки вмісту автоматично буде підтримувати використання примірників курсора з численними екземплярами процесів Таким чином, метод query нашого постачальника вмісту може просто повертати курсор як звичайне повертається значення, надаючи його клієнтам, які можуть працювати з іншим процесом

Крім того, метод query підтримує параметри uri, projection, selection, selectionArgs і sortOrder, застосовувані так само, як і аргументи методу SQLi teDatabase query Як і у випадку з будь-якою пропозицією SELECT на мові SQL, параметри методу query дозволяють клієнтам нашого постачальника вмісту вибирати тільки конкретні відеоролики, відповідні параметрам запиту Клієнт, що викликає простий постачальник відеоінформації, може не тільки передати унікальний ідентифікатор ресурсу, а й повідомити додаткову умову where з аргументами where Наприклад, такі аргументи дозволяють розробнику запитувати всі відеоролики від певного автора

Коли запит до бази даних виконано, наш постачальник викликає метод Cursor setNoti fieationllri, щоб задати унікальний ідентифікатор ресурсу За цим ідентифікатором інфраструктура постачальника вмісту буде визначати, які події поновлення постачальника надходитимуть до новоспечений курсор Даний унікальний ідентифікатор ресурсу стає точкою взаємодії між клієнтами, наглядачами за даними, на які посилається цей ідентифікатор, з одного боку, і постачальником вмісту, уведомляющего по цьому ідентифікатору, – з іншого

Нижче наводиться код методу query нашого простого постачальника відеоінформації Цей код виконує зіставлення URI, запрошувати базу даних, а потім повертає курсор:

Пояснення до коду наступні

Тут відбувається зіставлення URI з константами, застосовується спеціальний вбудований механізм (URI matcher)

Установка FinchVideo . Simpl eVideos . CONTENTJJRI в якості URI призводить до того, що курсор отримує події повідомлення, повязані з перетворенням будь-яких даних, на які вказує цей URI У даному випадку курсор буде отримувати всі події, які стосуються усіх відео, оскільки саме на все відеофайли посилається ідентифікатор FinchVideoSimpleVideosCONTENTJJRI

Безпосереднє повернення курсору Як було зазначено вище, діюча в Android система постачальників вмісту підтримує спільне використання декількома процесами будь-яких даних, що містяться в курсорі Межпроцессное спільне використання даних забезпечується «просто так», як невідємна властивість постачальників вмісту Можна просто повернути курсор, і він стане доступний активностей, чинним в різних процесах

Джерело: Android Програмування на Java для нового покоління мобільних пристроїв

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*