我一直在研究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的權威必須帶你到數據庫,然後路徑將帶你到正確的表。