В документе ContentProvider указано сделать ОДНУ запись в AndroidManifest для вашего класса ContentProvider. Если ваш класс поддерживает несколько вложенных таблиц, то для каждой должна быть объявлена одна константа CONTENT_URI. Как? Вы не можете сделать это, если вы не подкласс для каждой вложенной таблицы. Почему бы просто не иметь несколько провайдеров?
Реализуете ли вы поставщиков таблиц как потомков? С несколькими вложенными таблицами все еще существует только ОДИН класс ContentProvider?
Как видите, меня смущает документация. Читается:
Определить публичный статический финал Uri с именем
CONTENT_URI. Это строка, которая
представляет полный контент: URI, который
Ваш поставщик контента обрабатывает. Вы
должен определить уникальную строку для этого
значение. Лучшее решение - использовать
полное имя класса
контент-провайдер (сделан строчными). Так,
например, URI для
Класс TransportationProvider может быть
определяется следующим образом:
public static final Uri CONTENT_URI =
Uri.parse("content://com.example.codelab.transporationprovider");
Если у провайдера есть подтаблицы, также определите константы CONTENT_URI для каждой из подтаблиц. Все эти URI должны иметь одинаковые полномочия (поскольку это определяет поставщика контента) и различаться только по их путям. Например:
content://com.example.codelab.transporationprovider/train
content://com.example.codelab.transporationprovider/air/domestic
content://com.example.codelab.transporationprovider/air/international
Итак, сколько классов мы создаем, чтобы справиться с поездом, воздушным / бытовым и воздушным / международным?