首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >安卓四大组件之ContentProvider-内容提供者

安卓四大组件之ContentProvider-内容提供者

作者头像
Youngxj
发布2018-06-07 15:32:44
5950
发布2018-06-07 15:32:44
举报
文章被收录于专栏:YoungxjYoungxj
869df6e2bcef98084b20f3f49f58a829.jpg
869df6e2bcef98084b20f3f49f58a829.jpg

1、ContentProvider是如何实现数据共享的?

在安卓中如果想将自己应用的数据(一般为自己数据库中的数据)提供给第三方的应用,那么我们只能通过内容提供者来实现。

ContentProvider是应用程序之间共享数据的接口,使用的时候首先自定义一个类继承ContentProvider,然后重写query\insert\update\delete等的方法。因为其实四大组件之一,因此必须在清单文件中配置(manifest).

把自己的数据通过URI的形式共享出去

安卓系统下不同程序 数据默认是不能共享访问的

需要去实现一个类去继承ContentProvider

public class PersonContentProvider extends ContentProvider{
 public boolean onCreate(){
 }
  query(Uri, String[], String, String[], String)
 insert(Uri, ContentValues)
 update(Uri, ContentValues, String, String[])
 delete(Uri, String, String[])
 }
<provider
android:exported="true"
android:name="com.itheima.contenProvider.provider.PersonContentPro
vider"android:authorities="com.itheima.person" />

第三方可以通过 ContentResolver 来访问该 Provider。

2、安卓中数据存储的方式

文件存储、sp存储、ContentProvider存储、SQLiteDataBase存储、网络存储

3、为什么要用ContentProvider?它和Sql的实现上有什么差别?

contentProvider屏蔽了数据存储的细节,用户只需要关心操作数据的URI就可以了,ContentProvider可以实现不同APP之间的共享。

Sql也有增删改查的方法,但是Sql只能查询本应用下的数据库。而ContentProvider还可以去增删改查本地文件。XML文件的读取等等。

4、说说ContentProvider、ContentResolver、ContentObserver之间的关系

a.ContentProvider内容提供者,用于对外提供数据

b.ContentResolver.notifyChange(uri)发出信息

c.ContentResolver内存解析者,用于获取内容提供者提供的数据

d.ContentObserver内容观察者,可以监听数据的改变状态

e.ContentResolver.registerContentObserver()监听消息

对于使用内容提供者,可能因为没有具体的代码实例,会感到陌生,其实没关系的,如果要用的时候,我们随随便便网上看一眼就知道了,不要慌,哈哈

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-11-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档