日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle row 00033,00033-ContentProvider实现数据共享[总结]

發布時間:2025/3/21 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle row 00033,00033-ContentProvider实现数据共享[总结] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ContentProvider實現數據共享[總結]

OK,ContextProvider測試完成,總結下。

這個東西出現的意義是為了一個系統中,多應用間共享數據?

那不有文件,xml形式嗎?嗯,當然,這也是種方式。

思路:

1.provider部署建立

a).繼承ContextProvider這個抽象基類

b).ContextProvider這玩意是個抽象類,CURD函數都是空實現,等你來實現的。

c).實現ContextProvider?CURD函數,根據uri.

d).這中有個很重要的uri匹配對象,UriMatcher

e).Manifest清單中配置好provider,在系統中,為此應用添加自定義訪問權限(安全起見)

2.resolver調用

a).獲取ContentResolver對象,調用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";

//?相應標識碼

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調用

源碼示例

[

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返回的應該是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應該是2>:"?+?delete_code);

}

}

]

總結

以上是生活随笔為你收集整理的oracle row 00033,00033-ContentProvider实现数据共享[总结]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。