內容提供者的基本使用

內容提供者ContentProvider的使用:

1、需要暴露數據的應用程序中要寫一個類來繼承ContentProvider類,重寫裏面的增刪改查來調用應用程序裏面的數據庫。
2、這個類中需要來匹配訪問本內容的程序傳遞過來的Uri來判斷是否符合要求,利用new UriMatcher(設置如果沒有匹配返回的默認值),對象調用add(authorities:清單文件中的主機名,口令,匹配成功後的返回值)來添加要相匹配的uri對象,調用match(uri對象);來判斷是否匹配成功

example:

UriMatch urimatch = new Urimatch(UriMatch.NO_MATCH);
static{
     urimatch.addUri("com.example.contentprovider.GIVEITOUT" ,
                    "xiaojidunmogu" , SUCESS);     
}
urimatch.match();

3、在每個增刪改查的方法中都進行匹配判斷,再執行數據庫操作,
調用方法unbind解除綁定後,中間人的服務方法調用還能用,因爲服務雖然被destroy了,但還沒被回收。

遠程服務的程序清單配置中的Intent-filter 中不用添加 category節點,(添加也不會報錯,可以運行)


PS:

繼承ContentProvider類重寫Query方法的時候,需要返回Cursor的對象值,在返回對象之前不能關閉cursor或者SQliteDatabase的對象;否則報出異常08-11 13:26:00.868: E/DatabaseUtils(17370): java.lang.IllegalStateException: attempt to re-open an already-closed object:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章