Архив за месяц: Апрель 2017

Использование карт проекций

Использование карт проекций

Поставщик контента действует подобно посреднику между абстрактным набором столбцов и реальными столбцами в базе данных, но эти наборы столбцов могут различаться. При конструировании запросов необходимо учитывать соответствие между столбцами конструкции where, указанными клиентом, и реальными столбцами базы данных. Такая карта… Читать далее

Реализация метода delete

Реализация метода delete

Метод delete в поставщике контента отвечает за удаление записи (или записей) на основе переданной конструкции where. Он возвращает количество удаленных строк.

Как и другие методы, метод update для выяснения типа URI использует класс UriMatcher. Если это коллекция, то передается конструкция… Читать далее

Реализация метода insert

Реализация метода insert

Метод insert в поставщике контента отвечает за вставку записи в базу данных и возвращает URI, который указывает на только что созданную запись.

Как и в других методах, в методе insert для выяснения типа URI используется класс UriMatcher. Код сначала проверяет,… Читать далее

Обеспечение контрактов MIME-типов

Обеспечение контрактов MIME-типов

Поставщик контента BookProvider должен также реализовать метод getType() , возвращающий MIME-тип для заданного URI. Этот метод, как и многие другие методы поставщика контента, перегружается в зависимости от входящих URI. Поэтому первой заботой метода getType() является выяснение типа URI — это… Читать далее

Расширение класса Contentprovider

Расширение класса Contentprovider

Для реализации нашего примера поставщика контента BookProvider необходимо расширить класс ContentProvider, переопределить метод onCreate() и реализовать методы query, insert, update, delete и getType. В этом разделе описаны настройка и создание базы данных, а конкретные методы будут реализованы ниже. Полный исходный… Читать далее

Реализация поставщиков контента

Реализация поставщиков контента

К этому моменту уже известно, как взаимодействовать с поставщиком контента для обработки данных, но пока еще не было показано, как написать поставщик контента. А для этого нужно расширить класс android.content.ContentProvider и реализовать следующие ключевые методы:

query

insert

update

delete

getType… Читать далее

Обновления и удаления

Обновления и удаления

Ранее были подробно рассмотрены запросы и вставки; обновления и удаления также довольно прямолинейны. Выполнение обновления подобно вставке, при которой изменяемые значения столбцов передаются через объект ContentValues. Вот сигнатура метода обновления update в объекте ContentResolver:

int numberOfRowsUpdated = activity.getContentResolver().update(

Uri uri,… Читать далее

Добавление файла к поставщику контента

Добавление файла к поставщику контента

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

В Android этот протокол автоматизирован за счет определения специальной процедуры для сохранения… Читать далее

Вставка записей

Вставка записей

До сих пор мы рассматривали только извлечение данных из поставщиков контента с помощью URI. А теперь взглянем на вставки, изменения и удаления.

На заметку! При объяснении поставщиков контента мы использовали примеры из приложения Notepad, которое в руководстве от Google предоставляется… Читать далее