根据我的理解,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
是路径段。
但是内部如何将这些数据存储在数据库中? 或者内容提供商如何解释这些数据?
请帮帮我。
答案 0 :(得分:6)
简单的答案是它存储在数据库中,无论你喜欢什么。路径中的所有内容以及下面的数据库路径的映射都由ContentProvider的编写者定义。
或多或少,您要使用的模型是数据库中每个表都有一个路径。
在某些情况下,您可能需要一些额外的路径。通常,这意味着公开数据库的一些备用“视图”...... Contacts API提供了一个很好的例子。
为什么要强制实施这种“陆地/公共汽车”?为什么不只是“公共汽车”和“火车”。每个有一个SQL表? SQL表不是Java类。他们没有继承关系,那种雇佣制并不是必要的。