一、android
內容提供者(ContentProvider)是Android系統四大組件之一,用於保存和檢索數據,Android系統中不一樣應用程序之間共享數據的接口。
ContentProvider是不一樣應用程序之間進行數據交換的標準API,以Uri形式對外提供數據,容許其餘應用操做本應用數據。其餘應用則使用ContentResolver,並根據ContentProvider提供的Uri操做指定數據。ide
二、建立一個內容提供者
定義一個類繼承android.content包下的ContentProvider類(抽象類)。子類須要重寫它的onCreate()、delete()、getType()、insert()、query()、update()這幾個抽象方法。
ContentProvider是四大組件之一,必需要在清單文件中註冊
<provider>
android:name="cn.itcast.db.PersonDBProvider"
android:authorities="cn.itcast.db.personprovider">
</provider>對象
3.uri簡介
contentprovider的幾個抽象方法,這幾個抽象方法中有一個參數uri,它表明了數據的操做方法,uri是由scheme、authorites、path三部分組成繼承
scheme:「 content」是一個標準的前綴,代表這個數據被內容提供者所
控制,它不會被修改;接口
authorities: "cr.ias. b. personprovider」是在清單文件中指定的資源
android: authorities屬性值,該值必須惟一,它表示了當前的內容提供者;get
ath:「 /person」表明資源(或者數據),當訪問者須要操做不一樣數據時這個部分是動態改變的it
三、ContentResolver的基本用法ast
在Android系統中,ContentResolver充當着橋樑的角色。應用程序經過ContentProvider暴露本身的數據,經過ContentResolver對應用程序暴露的數據進行操做。
經過ContentResovler對象實現數據的操做代碼以下:
Uri uri=Uri.parse(「content://cn.itcast.db.personprovider/person」);
ContentResolver resolver=context.getContentResolver();
Cursor cursor = resolver . query ( un , new String ( " address " , " date " , " type " , " body " ) , null , null , null )
while(cursor.moveToNext()){
String address=cursor.getString(0)class