Використання постачальника вмісту – ANDROID ДОДАТКИ

&nbsp

Оскільки постачальники вмісту дуже важливі в Android, ми зробимо тут короткий вступ в проблему і покажемо, як написати клієнт, який використовує постачальник вмісту У даному прикладі застосовується один з найважливіших постачальників вмісту – база даних Contacts (Контакти) Цей приклад повинен допомогти вам більш грунтовно зрозуміти, як постачальник вмісту вписується в вашу програму Клас ContentProvider надає центральний АРІ для постачальників вмісту, від якого можна виробляти підтипи для управління конкретними типами даних Активності звертаються до екземплярів конкретного постачальника вмісту, використовуючи клас ContentResolver та повязані з ним URL наступним чином:

При роботі з постачальником вмісту ми, зокрема, викликаємо його операції з даними, при яких застосовуються унікальні ідентифікатори ресурсів у стилі REST Ці ідентифікатори визначаються в класі UriMatcher, який надає просту утиліту зіставлення рядків для роботи з URL на основі REST Ця програма серед іншого підтримує роботу з рядками, що містять символи (джокерние) символи URL постачальників вмісту завжди мають таку форму:

Тут authori ty (джерело) – Java-пакет простору імен постачальника вмісту (найчастіше це відноситься до Java простір імен реалізації постачальника вмісту) Ось два приклади унікальних ідентифікаторів ресурсу, що використовуються з постачальниками вмісту:

Коли розробник викликає метод query стосовно до постачальника вмісту, виклик повертає обєкт Cursor, який реалізує інтерфейс android database Cursor Цей інтерфейс дозволяє отримати один результат (Наприклад, рядок з бази даних) за раз за допомогою індексу, який автоматично оновлюється при кожному отриманні нового результату Розробники, знайомі з технологією JDBC (взаємодія Java і баз даних), можуть порівняти цю ситуацію з використанням javasqlResultSet У більшості випадків обєкти Cursor представляють результати запитів до таблиць бази даних SQLite Розробник може отримати доступ до полів курсора, користуючись індексами з базової таблиці SQLite Ось приклад ітерірованія курсора в Android і доступу до його полях:

Тут слід зазначити, що всякий раз, коли клієнт використовує курсор від постачальника вмісту, курсор необхідно закривати після закінчення роботи клієнта з ним Якщо цього не зробити, може вийти серйозний витік памяті, яка в підсумку може призвести до краху програми В Android застосовуються два методи, які дозволяють гарантувати, що курсори постачальника будуть неодмінно закриті, якщо не використовуються:

активність безпосередньо викликає Cursor close

активність викликає або managedQuery для запрашіванія постачальників вмісту, або startManaging Cursor (Cursor) В обох випадках робота заснована на системі, яка спостерігає за посиланнями на курсори і дозволяє дізнатися, коли у конкретного посилання не залишається активних клієнтів Коли лічильники посилань показують, що всі клієнти закінчили роботу, система сама викликає Cursor close

Джерело: 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>

*

*