Android 内容提供器---创建内容提供器(概要)

内容提供器管理着对数据核心资源库的访问。你可以连同清单文件一起,把提供器做为一个Android应用程序中一个或多个类来实现。你要实现的类之一就ContentProvider子类,这个类是提供器跟其他应用程序之间的接口。尽管内容提供器意味着让数据对其他的应用程序有效,但是在你的应用程序中也可以有允许用户查询、修改由提供器管理的数据的Activity。

创建内容提供器之前的准备工作

在开始创建提供器之前,先做以下工作:

1. 决定是否需要一个内容提供器。如果你想要提供以下的一个或多个功能,就需要创建一个内容提供器:

A.你想要给其他的应用程序提供复杂的数据或文件;

B.你想要允许用户把复杂的数据从你的应用程序中复制到其他应用程序中;

C.你想要使用搜索框架提供定制的搜索方案。

如果只是在你自己的应用程序内部使用一个SQLite数据库,就不需要提供器。

2. 认真阅读“内容提供器基础”主题,以学习更多的有关提供器的知识。

接下来,按照以下步骤来创建提供器:

1. 给数据设计行存储。内容提供器用两种方式提供数据:

文件数据:

通常,放进文件的数据有照片、音频、或视频等。这些文件保存在你的应用程序的私有空间中。在来自另一个应用程序的对一个文件的请求响应中,你的提供器能够提供对文件的处理。

结构化数据:

通常放入数据库、数组或类似结构的数据,使用与表(行和列的结构)兼容的格式来保存数据。一行代表一个实体,如一个人或清单中一项。一列代表行实体的某些数据,如人的名字或项目的价格。存储这中类型数据的通常方法是保存在一个SQLite数据库中,但是你能够使用任何其他持久化存储类型。有关Android系统中有效的存储类型,请看“设计数据存储”的章节。

2. 定义一个具体的ContentProvider类的实现类和这个类所要求的方法。这个类是你的数据和Android系统的其他部分之间的接口。关于ContentProvider类的更多信息,请看“实现ContentProvider类”章节。

3. 定义提供器的授权字符串、内容资源标识(URI)、和列名。如果你想要这个提供器处理Intent对象,还要定义Intent动作、附加数据和标识。同时还要给想要访问你的数据的应用程序定义必要的访问权限。你应该把所有的这些值作为常量定义在一个独立的合约类中,以便以后可以把这个类暴露给其他应用程序。有关内容资源标识(URI)的更多信息,请看“设计内容资源标识(URI)”。有关Intent对象的更多信息,请看“Intent和数据访问”。

4. 添加其他的可选项,如示例数据或能够在提供器或基于云端数据之间同步数据的AbstractThreadedsyncAdapter的实现。

注:本人转载系个人觉得翻译的很好,值得收藏,且自己回头看着方便。

如有兴趣请访问作者官方博客http://blog.csdn.net/FireOfStar

内容提供器管理着对数据核心资源库的访问。你可以连同清单文件一起,把提供器做为一个Android应用程序中一个或多个类来实现。你要实现的类之一就ContentProvider子类,这个类是提供器跟其他应用程序之间的接口。尽管内容提供器意味着让数据对其他的应用程序有效,但是在你的应用程序中也可以有允许用户查询、修改由提供器管理的数据的Activity。

创建内容提供器之前的准备工作

在开始创建提供器之前,先做以下工作:

1. 决定是否需要一个内容提供器。如果你想要提供以下的一个或多个功能,就需要创建一个内容提供器:

A.你想要给其他的应用程序提供复杂的数据或文件;

B.你想要允许用户把复杂的数据从你的应用程序中复制到其他应用程序中;

C.你想要使用搜索框架提供定制的搜索方案。

如果只是在你自己的应用程序内部使用一个SQLite数据库,就不需要提供器。

2. 认真阅读“内容提供器基础”主题,以学习更多的有关提供器的知识。

接下来,按照以下步骤来创建提供器:

1. 给数据设计行存储。内容提供器用两种方式提供数据:

文件数据:

通常,放进文件的数据有照片、音频、或视频等。这些文件保存在你的应用程序的私有空间中。在来自另一个应用程序的对一个文件的请求响应中,你的提供器能够提供对文件的处理。

结构化数据:

通常放入数据库、数组或类似结构的数据,使用与表(行和列的结构)兼容的格式来保存数据。一行代表一个实体,如一个人或清单中一项。一列代表行实体的某些数据,如人的名字或项目的价格。存储这中类型数据的通常方法是保存在一个SQLite数据库中,但是你能够使用任何其他持久化存储类型。有关Android系统中有效的存储类型,请看“设计数据存储”的章节。

2. 定义一个具体的ContentProvider类的实现类和这个类所要求的方法。这个类是你的数据和Android系统的其他部分之间的接口。关于ContentProvider类的更多信息,请看“实现ContentProvider类”章节。

3. 定义提供器的授权字符串、内容资源标识(URI)、和列名。如果你想要这个提供器处理Intent对象,还要定义Intent动作、附加数据和标识。同时还要给想要访问你的数据的应用程序定义必要的访问权限。你应该把所有的这些值作为常量定义在一个独立的合约类中,以便以后可以把这个类暴露给其他应用程序。有关内容资源标识(URI)的更多信息,请看“设计内容资源标识(URI)”。有关Intent对象的更多信息,请看“Intent和数据访问”。

4. 添加其他的可选项,如示例数据或能够在提供器或基于云端数据之间同步数据的AbstractThreadedsyncAdapter的实现。

注:本人转载系个人觉得翻译的很好,值得收藏,且自己回头看着方便。

如有兴趣请访问作者官方博客http://blog.csdn.net/FireOfStar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值