Реализация метода insert
Метод insert в поставщике контента отвечает за вставку записи в базу данных и возвращает URI, который указывает на только что созданную запись.
Как и в других методах, в методе insert для выяснения типа URI используется класс UriMatcher. Код сначала проверяет, нет ли в URI ошибок, и если есть, генерируется исключение.
Затем выполняется проверка необязательных и обязательных параметров столбцов. При отсутствии значений в некоторых столбцах код может подставить значения по умолчанию.
После этого используется объект SQLiteDatabase для вставки новой записи и возврата идентификатора вставленной записи. В завершение код создает новый URI на основе полученного из базы данных идентификатора.
Реализация метода update
Метод update в поставщике контента отвечает за обновление записи (или записей) на основе переданных значений столбцов и конструкции where. После обновления метод возвращает количество измененных строк.
Как и другие методы, метод update для идентификации типа URI использует класс UriMatcher. Если типом URI является коллекция, то передается конструкция where, чтобы она могла охватить максимальное количество записей. Если тип URI — одиночная запись, то из URI извлекается идентификатор книги и оформляется в виде дополнительной конструкции where. По завершении код возвращает количество обновленных записей (см. листинг 4.6).
Обратите внимание, что метод notifyChange позволяет сообщить об изменении URI. В принципе, то же можно сделать и с методом insert, сказав, что после вставки записи изменился элемент …/books.
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.