內容提供器可以選擇只對一部分數(shù)據(jù)進行共享
1 類型
(1)使用現(xiàn)有的內容提供器(一些系統(tǒng)應用提供的)讀取和操作相應程序中的數(shù)據(jù)
(2)創(chuàng)建自己的內容提供器給我們程序的數(shù)據(jù)提供外部訪問接口(供其他程序使用)
使用現(xiàn)有的內容提供器
1 使用ContentResolve類:通過Context中的getContentResolver類
步驟:
(1)構造URL對象:ContentResolve中不接收表名參數(shù)衬浑,采用一個Uri參數(shù)代替雀哨。
由權限泌绣、路徑兩部分組成侣诵。權限以包名命名吩抓,路徑對同一程序不同的表進行區(qū)分震肮。以下是一個完整的Url
content://com.example.app.provider/table1
其中湿刽,content://com.example.app.provider屬于一個程序權限兽泣。table1是在一個程序里的一張表怀读。
接著將上面的uri轉為Uri對象诉位。調用parse如下:
Uri uri=Uri.parse("content://com.example.app.provider/table")
(2)然后使用這個Uri對象來操作數(shù)據(jù)
Cursor cursor=getContentResolver().query(uri,若干參數(shù))
返回一個Cursor對象
(3)將數(shù)據(jù)從Cursor中逐個取出來。
2 其他幾個操作
getContentResolver().insert(uri,values);
getContentResolver().update(uri,values,)
gteContentResolver().delete()