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

Android四大组件—ContentProvider

2016-05-25 18:46 471 查看

Android四大组件—ContentProvider

ContentProvider 是 Android四大组件之一,Android提供了五种数据存储技术(其他的四种分别是:SharedPreferences、IO、SQLite、网络)。这五种技术都能由ContentProvider提供的方法按统一的代码格式存取。这种以一致性的方法操作多样性的数据源与面向对象的多态异曲同工。

Android中的Contentprovider机制可支持在多个应用中存储和读取数据。这也是跨应用共享数据的唯一方式。在android系统中,没有一个公共的内存区域,供多个应用共享存储数据。

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

ContentProvider特点
(1)android平台提供了ContentProvider使一个应用程序的指定数据集提供给其他应用程序。其他应用可以通过ContentResolver类从该内容提供者中获取或存入数据。

(2)只有需要在多个应用程序间共享数据是才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中。它的好处是统一数据访问方式。

(3)ContentProvider实现数据共享。ContentProvider用于保存和获取数据,并使其对所有应用程序可见。这是不同应用程序间共享数据的唯一方式,因为android没有提供所有应用共同访问的公共存储区。

(4)开发人员不会直接使用ContentProvider类的对象,大多数是通过ContentResolver对象实现对ContentProvider的操作。

(5)ContentProvider使用URI来唯一标识其数据集,这里的URI以content://作为前缀,表示该数据由ContentProvider来管理。

使用ContentProvider共享数据
1.ContentProvider类主要方法的作用:

1.1 public boolean onCreate():该方法在ContentProvider创建后就会被调用,Android开机后, ContentProvider在其它应用第一次访问它时才会被创建。

1.2 public Uri insert(Uri uri, ContentValuesvalues):该方法用于供外部应用往ContentProvider添加数据。

publicint delete(Uri uri, String selection, String[] selectionArgs):该方法用于供外部应用从ContentProvider删除数据。

1.3 public int update(Uri uri, ContentValuesvalues, String selection, String[] selectionArgs):该方法用于供外部应用更新ContentProvider中的数据。

1.4 public Cursor query(Uri uri, String[]projection, String selection, String[] selectionArgs, String sortOrder):该方法用于供外部应用从ContentProvider中获取数据。

1.5 public String getType(Uri uri):该方法用于返回当前Url所代表数据的MIME类型。
2.如果操作的数据属于集合类型,那么MIME类型字符串应该以vnd.android.cursor.dir/开头

3.如果要操作的数据属于非集合类型数据,那么MIME类型字符串应该以vnd.android.cursor.item/开头

ContentProvider的实现过程
1、 定义一个CONTENT_URI常量,提供了访问ContentProvider的标识符。
2、
定义一个类,继承ContentProvider。
3、
实现query,insert,update,delete,getType和onCreate方法。
4、
在AndroidManifest.xml当中进行声明。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: