Реферат: Необходимые действия для создания источника данных.
Для создания нового Источника данных наследуйте абстрактный класс ContentProvider. Переопределите метод onCreate, чтобы создать (и инициализировать) базовый источник, который вы хотите опубликовать.
import android.content.*;
import android.database.Cursor;
import android.net.Uri;
import android.database.SQLException;
public class MyProvider extends ContentProvider {
@Override
public boolean onCreate() {
// TODO: Создать базу данных, с которой будет работать данный класс.
return true;
}
}
Необходимо предусмотреть публичное статическое свойство CONTENT_URI, которое возвращает полный URI для данного источника. URI Источника данных должен быть уникальным, поэтому лучше привязать его к имени пакета. В общем виде определение URI Источника данных выглядит так: content://com.<CompanyName>.provider.<ApplicationName>/<DataPath>
Например:content://com.paad.provider.myapp/elements
Пути URI могут представляться двумя способами. URI, показанный выше, — это запрос ко всем значениям определенного типа (в данным случае все элементы). Для запроса к конкретной строке, в конце нужно указать ее номер (в данном случае пятый элемент).
content://com.paad.provider.myapp/elements/5 Для обеспечения поддержки доступа к Источнику данных рекомендуется использовать UriMatcher. Пример использования
UriMatcher для обработки одиночных или множественных запросов к Источнику данных:
public class MyProvider extends ContentProvider {
private static final String myURI = «content://com.paad.provider.myapp/items»;
public static final Uri CONTENT_URI = Uri.parse(myURI);
@Override
public boolean onCreate() {
// TODO: Создать базу данных, с которой будет работать данный класс.
return true;
}
// Создайте константы для распознавания разных запросов.
private static final int ALLROWS = 1;
private static final int SINGLE_ROW = 2;
private static final UriMatcher uriMatcher;
// Заполните данными объект UriMatcher. URI заканчивается на ‘items’,
// когда осуществляется запрос ко всем элементам, и на ‘items/[rowID]’,
// когда идет запрос к единственной строке.
static {
uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
uriMatcher.addURI(«com.paad.provider.myApp», «items», ALLROWS);
uriMatcher.addURI(«com.paad.provider.myApp», «items/#», SINGLE_ROW);
}
}
Не помешает также назначить имена столбцам, доступным в Источнике данных, для упрощения извлечения данных из результирующего Курсора.
Варианты backend при организации источника данных.