基础知识:四、 ContentProvider

四、 ContentProvider


1、请介绍下ContentProvider是如何实现数据共享的
在Android 中如果想将自己应用的数据(一般多为数据库中的数据)提供给第三发应用,那么我们只能通过ContentProvider来实现了。

ContentProvider 是应用程序之间共享数据的接口。使用的时候首先自定义一个类继承ContentProvider,然后覆写 query、insert、update、delete等方法。

因为其是四大组件之一因此必须在AndroidManifest文件中进行注册。

把自己的数据通过uri的形式共享出去 android 系统下 不同程序 数据默认是不能共享访问 需要去实现一个类去继承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、请介绍下Android的数据存储方式

a. File存储
b. SharedPreference存储
c. ContentProvider存储
d. SQLiteDataBase存储
e. 网络存储


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()监听消息。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值