Android四大组件—ContentProvider

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,getTypeonCreate方法。 

4、  AndroidManifest.xml当中进行声明。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值