安卓筆記 ContentProvider

2021-09-29 02:31:15 字數 1830 閱讀 9061

四大元件之一。

contentprovider是不同應用程式之間進行資料交換的標準api。當乙個應用程式暴露自己的資料給其他程式使用時,該應用程式通過提供contentprovider來實現;其他應用程式通過contentresolver來操作contentprovider暴露的資料。

contentprovider 負責暴露資料,contentresolver負責運算元據。

是不同應用程式之間進行資料交換的標準api。contentprovider以某種uri的形式對外提供資料,允許其他應用程式訪問或修改資料;其他應用程式使用contentresolver根據uri去訪問操作制定資料。

1.定義自己的contentprovider類(繼承contentprovider基類)

通過配置檔案註冊dictprovider(已繼承contentprovider)還需要提供如下幾個方法

與url類似。分為三個部分:

uri例子:content:

例子:content:/2

此時要訪問的是資源為word資料中id為2的記錄

context提供了如下方法獲取contentresolver物件:

一般來說,contentprovider是單例項模式:多個應用程式通過contentresolver來操作contentprovider提供的資料,contentprovider呼叫的資料操作會委託給同乙個contentprovider處理。

contentresolver(a應用)——(間接呼叫crud方法)——》contentprovider(b應用)

contentresolver(a應用)——(向uri執行crud方法)——》  uri     ——(委託給該uri對應的contentresolver)——》contentprovider(b應用)

1.開發乙個contentprovider子類,需要實現query()\insert()\update()\delete()等方法

2.在androidmanifest.xml檔案中註冊該contentprovider,指定android:authorities屬性。

安卓要求所有應用程式元件(activity、service、contentprovider\broadcastreceiver)都必須顯式進行配置。

屬性:通過getcontentresovler()方法獲取contentresovler物件。

為了確定該contentprovider實際能處理的uri,以及確定每個方法中uri引數所操作的資料,android系統提供了urimatcher工具類。

提供了兩個方法。

contenturis工具類(操作uri字串的工具類)提供如下兩個方法。

parseid(uri):從指定uri中解析出所包含的id值

例項(暫定,後期補充)

例項(暫定,後期補充)

uri:後面跟

external_content_uri:外部儲存器

internal_content_uri:內部儲存器上的

mediastore.audio.media.音訊

mediastore.images.media.

例項(暫定,後期補充)

contentprovider資料發生改變,程式呼叫如下**

context.getcontentresolver().notifychange(uri,null);
註冊***:

registercontentobserver(uri uri,boolean notifyfordescendents,contentobserver obserber)

例項:監聽使用者發出的簡訊(暫定,後期補充)

安卓筆記20170112

一,全域性獲取context的技巧 public static context getcontext 二,使用intent傳遞物件 1.serializable方式 public class person implements serializable public void setname str...

安卓 筆記 一

設定主活動 在androidmanifest檔案中 完成註冊 p36 若沒有設定主程式 此類程式仍可正常安裝,但無法在啟動器中開啟程式,僅做第三方服務或是內部進行呼叫。活動中 可以通過findviewbyid 方法來獲得 布局檔案中的元素,例如 button button button findvi...

安卓許可權筆記

筆記,本人學識有限,有錯誤請指正。在寫發現許可權挺重要的,幾乎都得用到,因為本人手機為安卓9.0版本,做啥都要申請許可權,寫了好幾個,都需要用到,因此,趁這個時間,看一下許可權方面,整理一段能夠直接用的許可權申請 高版本的安卓什麼許可權都需要獲取許可權 動態獲取。原本 低版本 是直接在android...