位置: 编程技术 - 正文

about ContentProvider

编辑:rootadmin

推荐整理分享about ContentProvider,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

注:来自传智demo,在此仅做整理及将其共享出来供大家学习

ContentProvider 内容提供者

当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据。

虽然使用其他方法也可以对外共享数据,但数据访问方式会因数据存储的方式而不同,如:采用文件方式对外共享数据,需要进行文件操作读写数据;采用SharedPreferences共享数据,需要使用SharedPreferences API读写数据。

而使用ContentProvider共享数据的好处是统一了数据访问方式。1:schema,用来说明一个ContentProvider控制这些数据。 " 通常定义Uri时使用”#”号占位符代替, 使用时替换成对应的数字" #表示数据id(#代表任意数字)" *来匹配任意文本

onCreate 其它应用第一次访问时被调。insert 外部应用使用此方法添加数据。delete 外部应用使用此方法删除数据。update 外部应用使用此方法更新数据。query 外部应用使用此方法查询数据。getType 主要用于匹配数据类型(例如:接收系统广播时传递的数据类型),返回当前Uri所代表数据的MIME类型。如果操作的数据属于集合类型,那么MIME类型字符串应该以vnd.android.cursor.dir/自定义类型。数据属于非集合类型数据,应该返回vnd.android.cursor.item/自定义类型。UriMatcher 用于匹配UriContentUris 获取和添加Uri信息

UriMatcher类使用介绍

UriMatcher类用于匹配Uri,它的用法如下:

首先第一步把你需要匹配Uri路径全部给注册上,如下:

//常量UriMatcher.NO_MATCH表示不匹配任何路径的返回码UriMatcher sMatcher = new UriMatcher(UriMatcher.NO_MATCH);

//如果match()方法匹配 “person”, 1);//添加需要匹配uri,如果匹配就会返回匹配码

//如果match()方法匹配 “person/#”, 2);//#号为通配符

switch (sMatcher.match(Uri.parse(" { case 1 break; case 2 break; break;}

注册完需要匹配的Uri后,就可以使用sMatcher.match(uri)方法对输入的Uri进行匹配,如果匹配就返回匹配码,匹配码是调用addURI()方法传入的第三个参数,假设匹配 id)用于为路径加上ID部分:Uri uri = Uri.parse(" resultUri = ContentUris.withAppendedId(uri, ); //生成后的Uri为: uri = Uri.parse(" personid = ContentUris.parseId(uri);//获取的结果为:另外Uri类中还有一个静态方法withAppendedPath(baseUri, pathSegment)也可以在某个路径上继续添加路径:Uri uri = Uri.parse(" resultUri = Uri.withAppendedPath(uri, “update”);// 生成后的Uri为: 写一个类继承ContentProvider2. 在androidmanifest.xml文件中注册这个provider,并注册authorities属性(定义是哪个contentprovider提供数据)3. 重写增删改查方法,在UriMatcher中添加需要匹配的URI路径4.在外部应用中通过UriMatcher中注册的uri去访问provider about ContentProvider

、、、

用法示例:

注册:

P:注册时添加了读写权限,要在访问provider的应用中添加上这两个权限

另外的应用调用方法获取数据:

TextCase.java

要在AndroidManifest.xml文件中添加上

运行TestCase.java中的testInsert()方法后新插入的一行数据:

访问provider是用jUnit方法进行测试

附源代码下载地址:

包含ContentProvider提供访问数据的继承ContentProvider的程序,也有个用junit方式方式provider的应用

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android 5.0上两个签名不一致的APP不能声明相同的permission 在AndroidL之前两个签名不一致的APP可以在AndroidManifest.xml中声明相同的Permission,但是在AndroidL上,声明了同样的Permission的两个签名不一致的APP不能同时安

android PercentRelativeLayout 支持百分比来设置控件的宽高 Android终于官方支持按百分比来设置控件的宽高了。我们先来看看效果:看一下布局:PercentRelativeLayoutandroid.support.percent.PercentRelativeLayoutxmlns:android=

Android View的刷新机制 在Android的布局体系中,父View负责刷新、布局显示子View;而当子View需要刷新时,则是通知父View来完成。这种处理逻辑在View的代码中明确的表现出来:pu

标签: about ContentProvider

本文链接地址:https://www.jiuchutong.com/biancheng/374407.html 转载请保留说明!

上一篇:AndroidAnnotations 自定义控件 ant编译 找不到类

下一篇:Android 5.0上两个签名不一致的APP不能声明相同的permission(安卓安装两个不同版本软件)

  • 以前年度所得税滞纳金的账务处理
  • 经营所得和企业所得
  • 企业所得税应纳税额
  • 工会经费与残保金的取数是一致吗
  • 资金账户托管协议
  • 主营业务收入和销售收入
  • 法人名下的车辆费用如何进公司帐
  • 个人抬头发票可以抵税个人所得税吗
  • 出口销售收入会计分录
  • 抹掉的零头怎么入账
  • 自产的产品无偿赠送职工
  • 库存现金日记账和库存现金总账都应逐日逐笔
  • 预付款怎么做账务处理
  • 退回多交的所得税怎么做分录小规模
  • 公司获得奖金计入什么科目
  • 个人所得税返还奖励财务人员做账
  • 一般纳税人开普票要交税吗
  • 招商费用计入哪个明细科目
  • 财务软件没有税务登记
  • 房地产预收房款怎么开票
  • 小规模纳税人纳税申报时间
  • 小规模保安公司收取服务费时如何开票
  • 员工收到货款不交公司,法律规定
  • 增值税系统技术维护费需要勾选吗
  • 银行认购公司债券的条件
  • 工厂的绿化费进项税额
  • 冲销上月暂估入账的原材料会计分录
  • Win7系统中如何快速查询文件内容
  • 既征增值税又征消费税的是
  • 留抵增值税可以冲营业外支出吗
  • 藏红花 (© Hayami Yanagisawa/Getty Images)
  • vue 网页
  • wordpress是开源吗
  • 办公用品开发票有哪些
  • 安格雷尔
  • 总公司下的分公司如何做账
  • 行人检测技术
  • 超参数有哪些调优方法
  • 专项资金怎么填表
  • 月末制造费用可以有余额吗
  • 发票违法行为的认定
  • 勾选认证发票的时候找不到这张发票号码怎么办
  • 企业注销前的账务处理
  • 购进固定资产的进项税计入成本吗
  • cms采集网站
  • 企业无形资产摊销的会计处理
  • mysql5.6解压版安装教程
  • 汽车维修企业怎么认定小微企业
  • 免税农产品发票需要勾选吗
  • 无形资产多摊销怎么处理
  • 个人所得税部分缴款怎么算
  • 一般纳税人销售自己使用过的物品
  • 银行共管账户怎么提款
  • 外购产品对外捐赠的会计处理方法
  • 购买汽车轮胎的注意事项
  • 备用金超过时间会怎么样
  • 培训费怎么算个人所得税
  • 固定资产建账为什么不能直接输入名字
  • 商业批发是什么意思
  • sql server数据库正在恢复
  • mysql锁表的sql
  • win2003设置网络共享
  • userexperience是什么意思
  • xp系统怎样设置无线网络连接
  • ubuntu 无法正常启动
  • 写出linux安装的详细步骤
  • linux,windows
  • rdclient怎么用win10怎么设置
  • pm2使用手册
  • table标签怎么设置宽高
  • javascript入门基础
  • python利用csv模块在对csv文件进行操作
  • html加载条代码
  • Android的事件处理机制是一种______机制
  • 西安税务稽查局举报中心
  • 集资房税收问题
  • 如何打印个税缴纳记录
  • 衰竭期矿山开采的矿产品减征幅度
  • 报纸的增值税税率
  • 基本账号信息
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设