经纬度讲课之ContentProvider的一些整理

来源:互联网 发布:网络工具软件 编辑:程序博客网 时间:2024/05/17 22:30

这是本学期第二次课
2016-3-25

什么是ContentProvider?
ContentProvider 是android平台中,在不同应用程序之间实现数据共享的一种机制.一个应用程序如果需要让别的程序可以操作自己的数据,即可以采用这种机制.并且此种方式忽略了底层的数据存储实现,ContentProvider提供了一种统一的通过Uri实现数据操作方式.

ContentProvider在Android系统的位置
这里写图片描述

在应用程序中的作用
这里写图片描述

怎么做?
继承ContentProvider类,重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据.ContentProvider共享数据的好处是统一了数据访问的方式.

所以呢?
对ContentProvider我们可以明确以下几点
1.可以在系统中不同程序之间共享数据.
2.ContentProvider以Uri的形式对外提供数据接口,其他程序使用ContentProvider根据Uri去操作指定的数据.
3.四大组件,都要必须在AndroidManifest.xml进行配置
4.一旦程序通过ContentProvider暴露自己的数据操作接口,不管程序是否启动,其他程序都可以通过该接口访问或操作该程序的内部数据.
5有增删查改四种操作数据的方式

在AndroidManifest.xml中声明

<provider android:name="MyContentJProvider"            android:authorities="com.example.geowind_02.mycontentprovider"            android:exported="true"            >        </provider>

name : 指定该ContentProvider实现类的名称;
authorities:指定该实现类对应的Uri
exported:指定ContentProvider能否被其他应用访问

其他程序怎么访问ContentProvider接口

ContentProvider暴露收后,其他应用程序用过ContentResover来操作
1.获取ContentResover对象:Context提供getContentResover()方法获取;
2.调用ContentResover对象的增删查改的方法来操作使用
3.操作哪个程序的数据由传入的参数URi确定

问题来了,什么是URI,和URL有什么区别?
URI ,uniform resource identifier,统一资源标识符,可以唯一标识一个资源
URL,uniform resource locator ,统一资源定位符
两者区别就在最后一个字符,Identifier和Locator,一般来说(URL)统一资源定位符,可以提供找到该资源的路径,但URL又是URI,因为它可以标识一个资源,所以URL又是URI的子集.
其实还有一个URN , UniformResource Name 统一资源名称,他们的关系:
这里写图片描述
URI可以视为URL(定位符),也可以视为URN(名称),亦或者两者兼备

URI的格式
这里写图片描述

两个工具类

这里写图片描述

这里写图片描述

● Android系统联系人的URI
这里写图片描述
● 多媒体URI
这里写图片描述

0 0