當一個應用程序須要把本身的數據暴露給其餘程序使用時,該就用程序就可經過提供ContentProvider來實現;其餘應用程序就可經過ContentResolver來操做ContentProvider暴露的數據。android
一旦某個應用程序經過ContentProvider暴露了本身的數據操做接口,那麼無論該應用程序是否啓動,其餘應用程序均可以經過該接口來操做該應用程序的內部數據,包括增長數據、刪除數據、修改數據、查詢數據等。ide
ContentProvider以某種Uri的形式對外提供數據,容許其餘應用訪問或修改數據;其餘應用程序使用ContentResolver根據Uri去訪問操做指定數據。xml
步驟:
一、定義本身的ContentProvider類,該類須要繼承Android提供的ContentProvider基類。
二、在AndroidManifest.xml文件中註冊個ContentProvider,註冊ContenProvider時須要爲它綁定一個URL。
例:
<provider android:name="自定義名字(例:.MyProvider)"
android:authorities="com.myit.providers.MyProvider" />
說明:authorities就至關於爲該ContentProvider指定URL。對象
註冊後,其餘應用程序就能夠經過該Uri來訪問MyProvider所暴露的數據了。
接下來,使用ContentResolver操做數據,Context提供了以下方法來獲取ContentResolver對象。
通常來講,ContentProvider是單例模式,當多個應用程序經過ContentResolver來操做ContentProvider提供的數據時,ContentResolver調用的數據操做將會委託給同一個ContentProvider處理。
使用ContentResolver操做數據只需兩步:
一、調用Activity的ContentResolver獲取ContentResolver對象。
二、根據須要調用ContentResolver的insert()、delete()、update()和query()方法操做數據便可。
繼承