您的位置:首页 > 编程语言 > PHP开发

基础知识:四、 ContentProvider

2016-05-13 12:53 441 查看
四、 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()监听消息。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: