前言
內(nèi)容提供者主要是用來進(jìn)行應(yīng)用程序間跨進(jìn)程數(shù)據(jù)共享罗心,使用ContentResolver獲取數(shù)據(jù),使用ContentProvider提供數(shù)據(jù)
Context類中的getContentResolver()獲取到實(shí)例 趁餐,提供了CRUD操作(通過URI)
URI由兩部分組成:authority和path 再加上協(xié)議
一個(gè)標(biāo)準(zhǔn)的內(nèi)容URI寫法:
content://com.evil.evan.provider/table1
有了內(nèi)容uri浦徊,我們還需要解析成URI對象,調(diào)用URI.parse()案例1 查詢表中的數(shù)據(jù)
Cursor cursor = getContentResolver().query(uri, projection, selection, selectionArgs, sortOrder);
遍歷cursor,調(diào)用方法cursor.moveToNext()來移動(dòng)游標(biāo)創(chuàng)建內(nèi)容提供者
新建一個(gè)類去繼承ContentProvider,并重寫6個(gè)抽象方法扎唾,CRUD四個(gè),onCreate()和getType()
匹配uri使用UriMatcher這個(gè)類
getType()返回值由三部分組成:vnd開頭+android.cursor.dir/或者android.cursor.item+vnd.<authority>.<path>