内容提供商中的Content_URI

Ash*_*ish 7 android android-contentprovider

根据我的理解,Content Provider是一种访问数据库内容的方法.

要访问数据库,需要使用Authority部分.该权限部分由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
Run Code Online (Sandbox Code Playgroud)

上面的场景是一个理想的场景,我们传递/训练作为唯一的数据库名称.但是,如果,我有以下content_uri:

content://com.example.transportationprovider/land/bus/133
Run Code Online (Sandbox Code Playgroud)

在这种情况下,/land/bus是路径段.

但那么内部如何将这些数据存储在数据库中?或者内容提供商如何解释这些数据?

请帮我.

jcw*_*ger 6

简单的答案是它存储在数据库中,无论你喜欢什么.路径中的所有内容以及下面的数据库路径的映射都由ContentProvider的编写者定义.

或多或少,您要使用的模型是数据库中每个表有一个路径.

在某些情况下,您可能需要一些额外的路径.通常,这意味着公开数据库的一些备用"视图"...... Contacts API提供了一个很好的例子.

你为什么要强制执行这种雇用"土地/公共汽车"?为什么不只是"公共汽车"和"火车".每个有一个SQL表?SQL表不是Java类.他们没有继承关系,那种雇佣制并不是必需的.