android平台中实现数据共享的机制contentprovider

android平台中实现数据共享的机制contentprovider

ID:25347800

大小:63.18 KB

页数:3页

时间:2018-11-19

android平台中实现数据共享的机制contentprovider_第1页
android平台中实现数据共享的机制contentprovider_第2页
android平台中实现数据共享的机制contentprovider_第3页
资源描述:

《android平台中实现数据共享的机制contentprovider》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、www.tsingyuan.cnAndroid平台中实现数据共享的机制ContentProviderContentProvider是安卓平台中,在不同应用程序之间实现数据共享的一种机制。一个应用程序如果需要让别的程序可以操作自己的数据,即可采用这种机制。并且此种方式忽略了底层的数据存储实现,ContentProvider提供了一种统一的通过Uri实现数据操作的方式。其步骤为:1.在当前应用程序中定义一个ContentProvider。2.在当前应用程序的AndroidManifest.xml中注册此ContentProvider3.其他应用程序通过ContentR

2、esolver和Uri来获取此ContentProvider的数据。ContentResolver提供了诸如insert(),delete(),query()和update()之类的方法,用于实现对ContentProvider中数据的存取操作。Uri是一个通用资源标志符,将其分为A,B,C,D4个部分:A:无法改变的标准前缀,包括;"content://"、"tel://"等。当前缀是"content://"时,说明通过一个ContentProvider控制这些数据  B:URI的标识,它通过authorities属性声明,用于定义了是哪个ContentProv

3、ider提供这些数据。对于第三方应用程序,为了保证URI标识的唯一性,它必须是一个完整的、小写的类名。例如;"content://com.silent.data.myprovider"  C:路径,可以近似的理解为需要操作的数据库中表的名字,如:"content://hx.android.text.myprovider/name"中的nameD:如果URI中包含表示需要获取的记录的ID;则就返回该id对应的数据,如果没有ID,就表示返回全部;下面通过是代码示例,演示一下如何在应用之间相互获取数据。在应用程序A中,继承ContProvider类,并重写其中方法。Ja

4、va代码收藏代码publicclassMyProviderextendsContentProvider{@Overridepublicintdelete(Uriuri,Stringselection,String[]selectionArgs){//TODOAuto-generatedmethodstubreturn0;}@OverridepublicStringgetType(Uriuri){//TODOAuto-generatedmethodstubreturnnull;}@OverridepublicUriinsert(Uriuri,ContentValue

5、svalues){returnnull;}//在Create中初始化一个数据库@OverridepublicbooleanonCreate(){SQLiteDatabasedb=this.getContext().openOrCreateDatabase("silent.db3",Context.MODE_PRIVATE,www.tsingyuan.cnnull);db.execSQL("createtabletab(_idINTEGERPRIMARYKEYAUTOINCREMENT,nameTEXTNOTNULL)");ContentValuesvalues=n

6、ewContentValues();values.put("name","test");db.insert("tab","_id",values);db.close();returntrue;}//实现query方法@OverridepublicCursorquery(Uriuri,String[]projection,Stringselection,String[]selectionArgs,StringsortOrder){SQLiteDatabasedb=this.getContext().openOrCreateDatabase("silent.db3",

7、Context.MODE_PRIVATE,null);Cursorc=db.query("tab",null,null,null,null,null,null);returnc;}@Overridepublicintupdate(Uriuri,ContentValuesvalues,Stringselection,String[]selectionArgs){//TODOAuto-generatedmethodstubreturn0;}}在其AndroidManifest.xml中声明此ContentProvider,其中authorities属性定义了此Cont

8、entPr

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。