《Android程序设计教程》课件第八章 ContentProvider数据共享.pptx

上传人(卖家):momomo 文档编号:7647955 上传时间:2024-05-19 格式:PPTX 页数:21 大小:525.23KB
下载 相关 举报
《Android程序设计教程》课件第八章 ContentProvider数据共享.pptx_第1页
第1页 / 共21页
《Android程序设计教程》课件第八章 ContentProvider数据共享.pptx_第2页
第2页 / 共21页
《Android程序设计教程》课件第八章 ContentProvider数据共享.pptx_第3页
第3页 / 共21页
《Android程序设计教程》课件第八章 ContentProvider数据共享.pptx_第4页
第4页 / 共21页
《Android程序设计教程》课件第八章 ContentProvider数据共享.pptx_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、让IT教学更简单,让IT学习更有效Android程序设计教程第八章 ContentProvider数据共享目录 8.1 ContentProvider简介 8.1.1 ContentProvider类 8.1.2 ContentResolver类 8.2 开发ContentProvider程序 8.2.1编写ContentProvider子类 8.2.2 注册ContentProvider 8.2.3 使用ContentProvider 8.3 操作系统的ContentProvider 8.3.1 管理联系人 8.3.2 管理多媒体 8.4 ContentObserver学习目标 了解Cont

2、entProvider类和ContentResolver类 能够开发ContentProvider程序 能够操作系统的ContentProvider 了解ContentObserver类8.1 ContentProvider简介 ContentProvider是Android系统的四大组件之一,是不同应用程序之间进行数据交换的标准API,也是所有应用程序之间数据存储和检索的一个桥梁,其作用是使各个应用程序之间实现数据共享。它以Uri的形式对外提供数据,允许其他应用操作本应用程序的数据,其他应用通过ContentResolver来访问共享的数据。8.1.1 ContentProvider类 Co

3、ntentProvider与Activity、Service、BroadcastReceiver类似,都是Android应用的四大组件之一,需要在AndroidManifest.xml配置文件中进行配置。在ContentProvider类的增、删、改、查操作方法中,都用到类型为Uri的参数,该参数是ContentProvider对外提供的一个自身数据集的唯一标识。当一个ContentProvider管理多个数据集时,该ContentProvider将会为每个数据集分配一个独立且唯一的Uri。Uri的语法格式如下:content:/数据路径/标识ID(可选)其中,“content:/”是Cont

4、entProvider规定的协议,用来标识ContentProvider所管理的scheam,是一个标准的前缀,不能被修改;“数据路径”用于查找所要操作的ContentProvider;“标识ID”是可选的,标识不同数据资源,当访问不同资源时,该ID是动态改变的。Android系统提供了UriMatcher工具类对Uri进行匹配判断,该工具类提供了以下两个常用的方法:void addURI(String authority,String path,int code):用于注册Uri,其中参数authority和path组合成一个Uri,而参数code代表Uri对应的标识符;int match(

5、Uri uri):根据前面注册的Uri判断指定的Uri对应的标识符,如果找不到匹配的标识码,则返回-1.8.1.2 ContentResolver类 ContentProvider类中共享的数据不能被Android应用程序直接访问,而是通过操作ContentResolver类来间接操作ContentProvider中的数据。ContentResolver是内容解析器,提供了对ContentProvider数据进行查询、插入、修改和删除等操作方法。8.2 开发ContentProvider程序 开发ContentProvider程序的步骤如下:(1)创建一个ContentProvider子类,并

6、实现query()、insert()、update()和delete()等方法。(2)在AndroidManifest.xml配置文件中注册ContentProvider,并指定android:authorities属性(一般自动注册)。(3)使用ContentProvider,Activity和Service等组件都可以获取ContentProvider对象,并调用该对象相应的方法进行操作。8.2.1编写ContentProvider子类 新建一个Android项目,在Java源文件夹上右击,选择NewOtherContent Provider选项,弹出如图8.1所示对话框,在Class N

7、ame文本框中输入ContentProvider子类的类名,在URI Authorities文本框中输入数据路径。8.2.2 注册ContentProvider 在AndroidManifest.xml配置文件中注册ContentProvider,只需在元素中添加子元素即可,其示例代码如下。8.2.3 使用ContentProvider(1)首先需要修改相应的XML布局文件(2)修改MainActivity.java文件8.3 操作系统的ContentProvider Android系统本身提供了大量的ContentProvider,例如联系人信息,系统的多媒体信息,系统短信等,程序员自己开发

8、的Android应用程序时,可以通过ContentResolver来调用系统ContentProvider所提供的query()、insert()、update()和delete()方法,如此即可对Android内部数据进行操作。8.3.1 管理联系人 Android系统用于管理联系人的ContentProvider的Uri有以下三种:ContactsContract.Contacts.CONTENT_URI:管理联系人的Uri;ContactsContract.CommonDataKinds.Phone.CONTENT_URI:管理联系人的电话Uri;ContactsContract.Com

9、monDataKinds.Email.CONTENT_URI:管理联系人的E-mail的Uri。8.3.2 管理多媒体Android系统为多媒体提供了相应的ContentProvider的Uri,具体如下所示:MediaStore.Audio.Media.EXTERNAL_CONTENT_URI:存储在外部存储(SD卡)上的音频文件内容的ContentProvider的Uri。MediaStore.Audio.Media.INTERNAL_CONTENT_URI:存储在手机内部存储器上的音频文件内容的ContentProvider的Uri。MediaStore.Images.Media.EXT

10、ERNAL_CONTENT_URI:存储在外部存储器(SD卡)上的图片文件内容的ContentProvider的Uri。MediaStore.Images.Media.INTERNAL_CONTENT_URI:存储在手机内部存储器上的图片文件内容的ContentProvider的uri。MediaStore.Video.Media.EXTERNAL_CONTENT_URI:存储在外部存储器(SD卡)上的视频文件内容的ContentProvider的Uri。MediaStore.Video.Media.INTERNAL_CONTENT_URI:存储在手机内部存储器上的视频文件内容的Content

11、Provider的Uri。8.4 ContentObserver ContentObserver(内容观察者)的目的是观察(捕获)特定Uri引起的数据库变化,继而做出一些相应的处理。它类似于数据库技术中的触发器,当ContentObserver所观察的Uri发生变化时,便会触发ContentObserver的onChange()方法。触发器分为表触发器和行触发器,相应的ContentObserver也分为表ContentObserver和行ContentObserver,当然这是与它所监听的Uri MIME Type有关。ContentObserver的两个常用方法,具体如下所示:ContentObserver(Handler handler):构造方法,所有ContentObserver的派生类都需要调用该构造方法,参数是Handler对象,可以是主线程Handler(这时候可以更新UI),也可以是任何Handler对象。void onChange(boolean selfChange):观察到Uri发生变化时,回调该方法去处理,所有的ContentObserver的派生类都需要调用该方法去处理数据。谢谢

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(《Android程序设计教程》课件第八章 ContentProvider数据共享.pptx)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|