您的位置:首页 > 移动开发 > Android开发

【android学习】四大组件-Content Provider(内容提供者)

2017-09-01 15:07 274 查看

1,概念

ContentProvider(内容提供者)是Android中的四大组件之一。用来管理和共享应用程序的数据库。主要用于对外共享数据,也就是通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以通过ContentProvider对指定应用中的数据进行操作。

file, sqlite3, Preferences, ContentResolver与ContentProvider前三种数据操作方式都只是针对本应用内数据,程序不能通过这三种方法去操作别的应用内的数据。

android中提供ContenctResolver与ContentProvider来操作别的应用程序的数据。

比如要跨进程访问信息,可通过ContenctResolver的query、update、insert和delete方法即可。

2,分类

1)系统ContentProvider

如联系人,图片,音频,视频等数据。

2)自定义ContentProvider

3,实现

一个应用实现ContentProvider来提供内容给别的应用来操作;

一个应用通过ContentResolver来操作别的应用数据,当然在自己的应用中也可以。

1)ContentProvider

Android提供了一些主要数据类型的ContentProvider,比如音频、视频、图片和私人通讯录等。可在android.provider包下面找到一些Android提供的ContentProvider。通过获得这些ContentProvider可以查询它们包含的数据,当然前提是已获得适当的读取权限。

2)ContentResolver

当外部应用需要对ContentProvider中的数据进行添加、删除、修改和查询操作时,可以使用ContentResolver类来完成,要获取ContentResolver对象,可以使用Context提供的getContentResolver()方法。

4,方法

ContentProvider类种六个抽象方法。除了onCreate由系统回调并运行在主线程中,其它五个方法均由外界回调并运行在Binder线程池中。

1)onCreate()

初始化provider

2)query()

返回数据给调用者

3)insert()

插入新数据到ContentProvider

4)update()

更新 ContentProvider已经存在的数据

5)delete()

从ContentProvider中删除数据

6)getType()

返回ContentProvider数据的MIME类型(媒体类型),比如图片、视频。

如果不关注这个选项,可以直接返回null或
*/*


5,其它

1)Uri

Uri指定了将要操作的ContentProvider,其实可以把一个Uri看作是一个网址,我们把Uri分为三部分。

第一部分是”content://”。可以看作是网址中的”http://”。

第二部分是主机名或authority,用于唯一标识这个ContentProvider,外部应用需要根据这个标识来找到它。可以看作是网址中的主机名,比如”blog.csdn.net”。

第三部分是路径名,用来表示将要操作的数据。可以看作网址中细分的内容路径。

2)数据

①表格数据

ContentProvidder主要以表格的形式来组织数据,并且包含多个表,对于每个表格来说,具有行和列的层次性,行对应一条记录,列对应一条记录中的一个字段(类似数据库)。

②文件数据

比如图片、视频
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: