android之ContentResolver与ContentProvider

 在做apk的过程中,如何实现应用程序之间数据共享的?这个我觉得有点意思呢。
       两个应用进程要共享数据,简单的原理就是,A应用程序必须要将自己的数据暴露出来,B应用程序才能获取查看的,ContentResolver与 ContentProvider其实就是基于这个原理的,首先,A程序要新建一个继承ContentProvider的类创建一个内容提供器,将想暴露的数据公开暴 露出来,那B应用程序如何获取A应用程序暴露的数据?Android中提供了ContentResolver,B应用程序就可以通过ContentResolver接口访问 ContentProvider暴露提供的数据。
        上面基本的原理中,还有一个关键的词简单介绍一下:URI,这个词有很多意义,在我们这里简单的理解为内容URI,其实就是内容提供器中 数据的唯一标识符,ContentResolver就是是通过URI来查询ContentProvider中提供的数据,当然URI有一个标准的格式,网上就很多介绍, 不详细介绍(其实访问数据库中表的数据,或者其他接口如百度地图,天气等中的数据也类似这个原理,通过URL来访问请求后,解析返回的数 据,不过有的接口返回的是XML,JSON等格式数据,这样就需要解析了),简单的过程就是,B应用程序要查询获取A应用程序中数据,先将内容 URI字符串解析为uri对象后,就可以调用ContentResolver的query()方法来查询数据(也可以添加(insert)、删除(delete)、、修改 (update),当然需要一定的权限才可以),查询的结果是存放在Cursor对象中,对Cursor进行遍历就可以查询到你想要的数据结果。当然在 通过ContentResolver访问数据前,A应用程序必须新建了一个内容提供器(继承ContentProvider),内容提供器根据传入的uri,就能分析B应 用程序要访问的数据。
       上面只是我简单的理解,更详细深入还需要多多了解。 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值