ContentProvider
一 內容提供者
1.分爲系統自帶的內容提供者和自定義的內容提供者
2.系統內容提供者:一般在數據庫下/data/data/下以com.android.provider開頭的包名,都是有系統內容提供者 的,比如短信,聯繫人。獲得短信,聯繫人信息等都是通過系統的內容提供者。
3.自定義的內容提供者:現有兩個工程A和B,A中有數據庫,B要訪問A中私有化的數據庫,但是A中的數據庫外界 無法直接訪問,所以我們需要在A中自定義內容提供者,對外提供操作A中數據庫的方法,將操作數據庫的方法 公開化,內容提供者提供增刪改查的方法,B通過調用這些方法對A的數據庫進行操作。
二 自定義內容提供者
1.定義類繼承ContentProvider,並實現其中的方法()
public class Provider extends ContentProvider {
@Override
public boolean onCreate() {
// TODO Auto-generated method stub
return false;
}
2.清單文件中配置 android:authorities="myProvider" 標識,content://myProvider是要訪問的內容提供者
android:exported="true"置爲true,其他程序也可以訪問
<provider android:name="com.example.myprovider.Provider"
android:authorities="myProvider"
android:exported="true"/>
三 訪問內容提供者 1.獲取中間人ContentResolver
2.提供uri,觀察誰,就用誰的uri
3.註冊內容觀察者ContentObserver
比如監聽系統的所有短信的變化,系統短信已經有了內容提供者,我們只需與系統短信的uri匹配上,我們就可 以操作它,此時我們不需要寫內容提供者