杨小杰Blog(Youngxj)提供免费教程下载和网站搭建技术教程,主要分享和发布网站源码,致力创造一个高质量网络资源教程的分享平台
  • 首页
  • Android
  • 安卓四大组件之ContentProvider-内容提供者

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

Young小杰2016-11-20 12:40Android(0)1911查询中……小标签: 安卓软件技术 Android 四大组件

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()监听消息

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

本文转自诡道网!由杨小杰blog进行排版整合。



本文最后更新于2016-11-20,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!

手机扫描二维码
阅读体验更佳