ContentProvider

前言

正文

一、簡介

  • 關(guān)于 ContentProvider (內(nèi)容提供者)一般有兩種用法,一種是根據(jù)現(xiàn)有的內(nèi)容提供者來讀取和操作對應(yīng)程序中的數(shù)據(jù),另外一種是創(chuàng)建自己的內(nèi)容提供者給我們的程序中的數(shù)據(jù)提供外部的訪問接口。

  • 在一般的開發(fā)中,用的比較多的是第一種,即根據(jù)現(xiàn)有的內(nèi)容提供者來讀取和操作對應(yīng)程序中的數(shù)據(jù),比如說,讀取 Android 系統(tǒng)中自帶的聯(lián)系人、短信、媒體庫等數(shù)據(jù)。而要操作這些數(shù)據(jù)需要一個(gè)類:ContentResolver (內(nèi)容解析者)

  • 關(guān)于第二種用法,我們就需要用到 ContentProvider 類,下邊會逐漸介紹

二、ContentResolver 的簡單用法

2.1 獲取 ContentResolver 的實(shí)例
//需要通過 Context 來獲取
  ContentResolver contentResolver = context.getContentResolver();
2.2 一系列操作數(shù)據(jù)的方法
  • 查詢數(shù)據(jù):contentResolver.query();
  • 插入數(shù)據(jù):contentResolver.insert();
  • 更新數(shù)據(jù):contentResolver.update();
  • 刪除數(shù)據(jù):contentResolver.delete();
2.3 與 SQLiteDatabase 的區(qū)別

ContentResolver 中增刪改查的方法都不接受表名參數(shù),而是使用一個(gè) Uri 參數(shù)代替,這個(gè)參數(shù)被稱為內(nèi)容 URI ,它是唯一的標(biāo)識符,主要組成部分如下所示:

  • 協(xié)議聲明:content:// 這是固定寫法

  • authority:用于區(qū)分不同的程序,一般為包名: io.github.adsuper.mvpapp

  • path: 用于區(qū)分同一應(yīng)用程序中的不同表名,如:table1

  • Id: 用于區(qū)分同一表中的不同數(shù)據(jù),不過這個(gè)不常用,一般指定到表就行了

  • 拼接在一塊就是: content://io.github.adsuper.mvpapp/table1/333

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

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

  • 這篇主要介紹下ContentProvider如何實(shí)現(xiàn)共享數(shù)據(jù)、及ContentResolver如何訪問其他進(jìn)程等數(shù)...
    朋永閱讀 3,015評論 0 5
  • 為什么要將我們程序中的數(shù)據(jù)共享給其他程序呢?當(dāng)然,這個(gè)要視情況而定的,比如說賬號和密碼這樣的隱私數(shù)據(jù)顯然是不能共享...
    AntCanFly閱讀 868評論 0 1
  • 參考Content Providers 對于ContentProvider, 可以把它看做為一個(gè)數(shù)據(jù)庫, 數(shù)據(jù)庫中...
    AssIstne閱讀 2,122評論 1 3
  • 白百合出軌啦,一個(gè)偶像明星、票房女王,被爆料在泰國密會小鮮肉,兩人在泳池邊嬉戲,動作曖昧,產(chǎn)生巨大轟動效應(yīng),這兩天...
    笑長2016閱讀 747評論 0 1
  • 感恩生命的美好,謝謝 感恩大自然的神奇,謝謝 感恩伙伴們的精進(jìn),謝謝 感恩孩子的到來,謝謝 感謝錢寶寶如氧氣般來到...
    莫水娥閱讀 187評論 0 0

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