oracle row 00033,00033-ContentProvider实现数据共享[总结]
ContentProvider實(shí)現(xiàn)數(shù)據(jù)共享[總結(jié)]
OK,ContextProvider測(cè)試完成,總結(jié)下。
這個(gè)東西出現(xiàn)的意義是為了一個(gè)系統(tǒng)中,多應(yīng)用間共享數(shù)據(jù)?
那不有文件,xml形式嗎?嗯,當(dāng)然,這也是種方式。
思路:
1.provider部署建立
a).繼承ContextProvider這個(gè)抽象基類
b).ContextProvider這玩意是個(gè)抽象類,CURD函數(shù)都是空實(shí)現(xiàn),等你來實(shí)現(xiàn)的。
c).實(shí)現(xiàn)ContextProvider?CURD函數(shù),根據(jù)uri.
d).這中有個(gè)很重要的uri匹配對(duì)象,UriMatcher
e).Manifest清單中配置好provider,在系統(tǒng)中,為此應(yīng)用添加自定義訪問權(quán)限(安全起見)
2.resolver調(diào)用
a).獲取ContentResolver對(duì)象,調(diào)用CURD?api即可。
1.provider部署建立
源碼示例
[
package="com.android.buluo.contenproviderDemo"
android:versionCode="1"
android:versionName="1.0"?>
android:minSdkVersion="8"
android:targetSdkVersion="18"?/>
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.android.buluo.contenproviderDemo"?>
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"?>
android:name="com.android.buluo.contenproviderDemo.BlackActivity"
android:label="@string/app_name"?>
android:name="com.android.buluo.contenproviderDemo.MainActivity2"
android:label="@string/app_name"?>
android:name="com.android.buluo.providers.DictContentProvider"
android:authorities="com.android.buluo.providers.DictContentProvider"
android:exported="true"
android:readPermission="contenproviderDemo.read"
android:writePermission="contenproviderDemo.write"?>
]
[
public?class?DictContentProvider?extendsContentProvider{
//?uriMatcher
private?static?finalUriMatcheruriMatcher?=?new?UriMatcher(
UriMatcher.NO_MATCH);
//?AUTHORITY
private?static?final?String?AUTHORITY?=?"com.android.buluo.providers.DictContentProvider";
private?static?final?String?DICT_QUERY_ALL?=?"dict/query_all";
private?static?final?String?DICT_QUERY_ITEM?=?"dict/query_item";
private?static?final?String?DICT_DELETE?=?"dict/delete_all";
private?static?final?String?DICT_DELETE_ITEM?=?"dict/delete_item";
//?相應(yīng)標(biāo)識(shí)碼
private?static?final?int?DICT_QUERY_ALL_CODE?=?0;
private?static?final?int?DICT_QUERY_ITEM_CODE?=?1;
private?static?final?int?DICT_DELETE_CODE?=?2;
private?static?final?int?DICT_DELETE_ITEM_CODE?=?3;
static?{
//?注入uri
uriMatcher.addURI(AUTHORITY,?DICT_QUERY_ALL,?DICT_QUERY_ALL_CODE);
uriMatcher.addURI(AUTHORITY,?DICT_QUERY_ITEM,?DICT_QUERY_ITEM_CODE);
uriMatcher.addURI(AUTHORITY,?DICT_DELETE,?DICT_DELETE_CODE);
uriMatcher.addURI(AUTHORITY,?DICT_DELETE_ITEM,?DICT_DELETE_ITEM_CODE);
}
@Override
public?boolean?onCreate()
{
return?false;
}
@Override
public?Cursor?query(Uri?uri,?String[]?projection,?String?selection,
String[]?selectionArgs,?String?sortOrder)
{
switch?(uriMatcher.match(uri))?{
case?DICT_QUERY_ALL_CODE:
return?null;
case?DICT_QUERY_ITEM_CODE:
return?null;
default:
break;
}
return?null;
}
@Override
public?String?getType(Uri?uri)
{
return?null;
}
@Override
public?Uri?insert(Uri?uri,?ContentValues?values)
{
return?null;
}
@Override
public?int?delete(Uri?uri,?String?selection,?String[]?selectionArgs)
{
switch?(uriMatcher.match(uri))?{
case?DICT_DELETE_CODE:
return?uriMatcher.match(uri);
default:
throw?new?IllegalArgumentException("url不匹配:"?+?uri);
}
}
@Override
public?int?update(Uri?uri,?ContentValues?values,?String?selection,
String[]?selectionArgs)
{
return?0;
}
}
]
2.resolver調(diào)用
源碼示例
[
public?class?TestCase?extendsAndroidTestCase{
private?static?final?String?TAG?=?"TestCase";
public?void?test_query()
{
Uri?uri?=?Uri.parse("content://com.android.buluo.providers.DictContentProvider/dict/query_all");
ContentResolver?resolver?=?this.getContext().getContentResolver();
Cursor?cursor?=?resolver.query(uri,?null,?null,?null,?null);
Log.i(TAG,?"test_query返回的應(yīng)該是null:"?+?cursor);
}
public?void?test_delete()
{
Uri?uri?=?Uri.parse("content://com.android.buluo.providers.DictContentProvider/dict/delete_all");
ContentResolver?resolver?=?this.getContext().getContentResolver();
int?delete_code?=?resolver.delete(uri,?null,?null);
Log.i(TAG,?"test_delete返回的code應(yīng)該是2>:"?+?delete_code);
}
}
]
總結(jié)
以上是生活随笔為你收集整理的oracle row 00033,00033-ContentProvider实现数据共享[总结]的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 服务器方案,分享几种常见WEB服
- 下一篇: oracle启动报参数不正确,【orac