我一直在研究ContentProviders一段时间,我仍然无法理解Uri的工作原理。内容提供商uri如何工作?
内容:// APP_NAME/路径/ID
当指定如何对应于路径表被访问的路径? 你似乎需要用该路径标记表。是这样吗?
我一直在研究ContentProviders一段时间,我仍然无法理解Uri的工作原理。内容提供商uri如何工作?
内容:// APP_NAME/路径/ID
当指定如何对应于路径表被访问的路径? 你似乎需要用该路径标记表。是这样吗?
你在这一点上正确的谷歌文档也不是很清楚:
第一:你必须定义自定义提供一个权威: http://developer.android.com/guide/topics/providers/content-provider-creating.html#ContentURI
<provider
android:name=".ProviderDemo"
android:authorities="com.foo.android.providerdemo" />
二:当您查询使用这个权限供应商: http://developer.android.com/guide/topics/providers/content-provider-creating.html#ContentURI
//query all items
getContentResolver().query("content://com.foo.android.providerdemo/",...)
//query a single item
getContentResolver().query("content://com.foo.android.providerdemo/idOfItem>",...)
//query a view
getContentResolver().query("content://com.foo.android.providerdemo/<idOfView>/",...)
为了帮助您选择WH对于传入内容URI采取的动作,提供者API包括便利类UriMatcher,其将内容URI“模式”映射到整数值。您可以在switch语句中使用整数值,以便为与特定模式匹配的内容URI或URI选择所需的操作。
我的困惑来自于缺乏SQLite知识。我不知道一个数据库包含许多表格,而不仅仅是一个表格。现在我意识到,Uri的权威必须带你到数据库,然后路径将带你到正确的表。