ContentProvider 文档说要在 AndroidManifest 中为您的 ContentProvider 类创建一个条目。如果您的类支持多个子表,则必须为每个子表声明一个 CONTENT_URI 常量。如何?除非您为每个子表进行子类化,否则您不能这样做。为什么不只是有多个提供者?
您是否将子表提供程序实现为后代?有多个子表,还是只有一个 ContentProvider 类?
如您所见,我对文档感到困惑。上面写着:
定义一个名为 CONTENT_URI 的公共静态最终 Uri。这是代表完整内容的字符串:您的内容提供商处理的 URI。您必须为此值定义一个唯一的字符串。最好的解决方案是使用内容提供者的完全限定类名(小写)。因此,例如,TransportationProvider 类的 URI 可以定义如下:
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
那么,我们创建了多少类来处理火车、航空/国内和航空/国际?