人们的需求日益增多,手机的应用也就随之而增多,那么各个应用之间也是需要数据共享,这时Android为大家提供了一种统一的方法来实现不同应用程序的数据共享——ContentProvider。
1.ContentResolver
ContentResolver相当于一个客户端的存在,主要用于操作ContentProvider开放的数据。
它本属一个抽象类,主要提供了以下几个方法:
①Insert:向URI对应的ContentProvider中间插入Values对应的数据;
②Delete:删除URI对应的ContentProvider中符合条件的记录;
③Update:更新URI对应的ContentProvider中符合条件的记录;
④Query:查询URI对应的ContentProvider中符合条件的记录。
因为它是一个抽象类,所以在Android中用getContentResolver方法用于获取。
2.URI
当平台已经将数据公开的情况下,数据是以URI的形式向外公开。URI是通用资源标识符,用来定位任何远程或者本地的可用资源。URI可以表示Android系统中的图片、视频等资源,也可以表示ContentProvider中操作的数据。Content中使用的URI由4个字段构成。即(www.xing528.com)
content://→通用的URI前缀,用于ContentProvider定位资源,无须修改。
authority→主机名用于唯一标识ContentProvider,外部调用者可以根据这个标识来找到它,用于确定具体由哪个ContentProvider提供资源。一般authority由包名和类名组成。
Path→路径(path)可以用来表示操作的数据,路径的构建应根据业务而定:①要操作peo-ple表中的ID为2的记录,就可以构建路径/people/2;②要操作people表中的所有记录,就可以构建路径:/people;③要操作people表中的ID为2的记录的number字段,就可以构建路径/people/2/number;④要操作###表中的记录,就可以构建路径:/###。
id→数据编号,用来唯一确定数据集中的一条记录,用来匹配数据集_ID字段的值。
3.ContentProvider
Android提供了ContentProvider,一个程序可以通过实现一个ContentProvider的抽象接口将自己的数据完全暴露出去,而且ContentProviders是以类似数据库中表的方式将数据暴露,也就是说ContentProvider就像一个“数据库”。那么外界获取其提供的数据,也就应该与从数据库中获取数据的操作基本一致,采用URI表示外界需要访问的“数据库”。
如果开发属于自己的ContentProvider主要经历有两步:
第一步:开发一个ContentProvider子类,该子类需要实现增删查改等方法;
第二步:在AndroidManifest.xml文件中配置该ContentProvider。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。