内容提供商中的Content_URI

时间:2010-11-22 10:19:59

标签: 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

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

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

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

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

请帮帮我。

1 个答案:

答案 0 :(得分:6)

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

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

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

为什么要强制实施这种“陆地/公共汽车”?为什么不只是“公共汽车”和“火车”。每个有一个SQL表? SQL表不是Java类。他们没有继承关系,那种雇佣制并不是必要的。