8.4 ContentProvider

簡介:內(nèi)容提供者,通過暴露數(shù)據(jù)供其他應用進行讀取,數(shù)據(jù)來源可以是數(shù)據(jù)庫、文件、xml等;

? ? ? ? ? ? (ContentProvider是以類似數(shù)據(jù)庫中表的方式將數(shù)據(jù)暴露的)

執(zhí)行原理

URL:統(tǒng)一資源定位符,常說的網(wǎng)址,采用統(tǒng)一格式來描述各種資源信息(文件、服務器地址、目錄等);

URN:統(tǒng)一資源名稱,是url的更新形式,不依賴位置,有可能減少失效連接數(shù);

URI:統(tǒng)一資源標識符,一種資源定位機制(或命名標識機制)格式:[scheme:] scheme-specific-part,url與urn都是uri的子集;



使用系統(tǒng)提供的ContentProvider

不同版本可能對應不同的URL,獲取URL與對應的數(shù)據(jù)庫表的字段:

①來到系統(tǒng)源碼文件下:all-src.rar -> TeleponeProvider -> AndroidManifest.xml查找對應API

②打開模擬器的file exploer/data/data/com.android.providers.contacts/databases/contact2.db 導出后使用SQLite圖形工具查看表數(shù)據(jù)

例1:讀取短信

讀取短信

注:從5.0開始,默認短信應用外的軟件不能以寫入短信數(shù)據(jù)庫的形式發(fā)短信。這里只做插入數(shù)據(jù)的例子來看

插入短信

例2:讀取手機聯(lián)系人

讀取聯(lián)系人
根據(jù)手機號查找姓名
插入聯(lián)系人

自定義ContentProvider

流程

案例:B項目插入數(shù)據(jù)到A項目

創(chuàng)建數(shù)據(jù)庫
繼承ContentProdiver
清單文件配置
B項目中使用ContentResolver操作A

監(jiān)聽ContentProvider的數(shù)據(jù)變化

監(jiān)聽ContentProvider
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容