W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
在 Android 中如果想將自己應(yīng)用的數(shù)據(jù)(一般多為數(shù)據(jù)庫中的數(shù)據(jù))提供給第三發(fā)應(yīng)用, 那么我們只能通過 ContentProvider 來實現(xiàn).
ContentProvider 是應(yīng)用程序之間共享數(shù)據(jù)的接口. 使用的時候首先自定義一個類繼承 ContentProvider, 然后覆寫 query、insert、update、delete 等方法. 因為其是四大組件之一因此必須在 AndroidManifest 文件中進行注冊. 把自己的數(shù)據(jù)通過 uri 的形式共享出去
第三方可以通過 ContentResolver 來訪問該 Provider
每一個 ContentProvider 都擁有一個公共的URI, 只能通過訪問該 URI 來獲得數(shù)據(jù).
Android所提供的ContentProvider都存放在android.provider包中。 將其分為A,B,C,D 4個部分:
A:標(biāo)準(zhǔn)前綴, 用來說明一個 Content Provider 控制這些數(shù)據(jù),無法改變: "content:\/\/"
B:URI 的標(biāo)識,用于唯一標(biāo)識這個ContentProvider, 外部調(diào)用者可以根據(jù)這個標(biāo)識來找到它. 它定義了是哪個Content Provider提供這些數(shù)據(jù). 對于第三方應(yīng)用程序,為了保證URI標(biāo)識的唯一性,它必須是一個完整的、小寫的類名. 這個標(biāo)識在 元素的 authorities屬性中說明:一般是定義該 ContentProvider 的包.類的名稱
C:路徑(path),通俗的講就是你要操作的數(shù)據(jù)庫中表的名字, 或者你也可以自己定義, 記得在使用的時候保持一致就可以了;"content:\/\/com.bing.provider.myprovider\/tablename"
D:如果URI中包含表示需要獲取的記錄的ID;則就返回該id對應(yīng)的數(shù)據(jù),如果沒有ID,就表示返回全部; "content:\/\/com.bing.provider.myprovider\/tablename\/#" #表示數(shù)據(jù)id.
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: