Content_URI в контент-провайдере - PullRequest
7 голосов
/ 22 ноября 2010

Насколько я понимаю, контент-провайдер является средством доступа к содержимому базы данных.

А для доступа к базе данных необходима авторизационная часть. Эта часть полномочий предоставляется CONTENT_URI. Таким образом, Content_URI является средством передачи полномочий базе данных. Что касается CONTENT_URI, то оно обычно имеет вид

content://com.example.transportationprovider/trains/122
______ |____________________________________|_____ |___ 
  A                      B                     C     D
Where A = Content,
      B = Authority Part
      c = Path determining what data to request
      D = specific data

Приведенный выше сценарий - идеальный сценарий, в котором мы передаем / тренируемся как единственное имя базы данных Но что, если у меня есть следующее content_uri:

content://com.example.transportationprovider/land/bus/133

В этом случае /land/bus - это сегменты пути.

Но тогда как изнутри, как эти данные хранятся в базе данных? Или как контент провайдер интерпретирует эти данные?

Пожалуйста, помогите мне.

1 Ответ

6 голосов
/ 02 марта 2011

Простой ответ заключается в том, что он хранится в базе данных, как вам нравится. Все, что находится на пути, и отображение пути к базе данных внизу определяется автором ContentProvider.

Более или менее, модель, которую вы хотите использовать, состоит в том, что у вас есть один путь на таблицу в вашей базе данных.

В некоторых случаях вам могут потребоваться дополнительные пути. Как правило, это означает предоставление некоторого альтернативного «представления» базы данных ... API контактов предоставляет прекрасный пример этого.

Почему вы хотите навязать этот вид наемничества "земля / автобус"? Почему бы просто не "автобус" и "поезд". с одной таблицей SQL каждая? Таблицы SQL не являются классами Java. У них нет наследственных отношений, и подобная наёмность не нужна.

...