第10章 使用ContentProvider实现数据共享-【千锋教育】Android从入门到精通
2023-03-21
|
28页
|
289人阅读
|
0人下载
教辅
内容正文:
第10章 使用ContentProvider实现数据共享
数据共享标准:ContentProvider
开发ContentProvider
操作系统的ContentProvider
监听ContentProvider的数据改变
掌握ContentProvider类的作用和常用方法
掌握监听ContentProvider的数据改变
掌握使用ContentResolver的操作数据
掌握系统ContentProvider提供的数据
学 习 目 标
LEARNING OBJECTIVES
初心至善 匠心育人
锋云智慧官网 www.fengyunedu.cn
10.1
数据共享标准:ContentProvider
10.1.1
ContentProvider简介
10.1.2
URI简介
10.1.3
使用ContentResolver操作数据
目录
Contents
初心至善 匠心育人
锋云智慧官网 www.fengyunedu.cn
10.1 数据共享标准:ContentProvider
10.1.1 ContentProvider简介
ContentProvider内容提供者作为Android四大组件之一,其作用是在不同的应用程序之间实现数据共享的功能。
ContentProvider可以理解为一个Android应用对外开放的数据接口,只要是符合其定义的URI格式的请求,均可以正常访问其暴露出来的数据并执行操作。其他的Android应用可以使用ContentResolver对象通过与ContentProvider同名的方法请求执行。ContentProvider有很多对外可以访问的方法,并且在ContentResolver中均有同名的方法,它们是一一对应的,如图所示。
初心至善 匠心育人
锋云智慧官网 www.fengyunedu.cn
10.1 数据共享标准:ContentProvider
10.1.1 ContentProvider简介
具体ContentProvider如何使用呢?步骤如下所示。
(1)定义自己的ContentProvider类,该类需要继承Android提供的ContentProvider基类。
(2)在AndroidManifest.xml文件中注册这个ContentProvider,与注册Activity方式类似,只是注册时需要为它指定authorities属性,并绑定一个URI。
例如:
注意上面代码中authorities属性即指定URI。
初心至善 匠心育人
锋云智慧官网 www.fengyunedu.cn
10.1 数据共享标准:ContentProvider
10.1.1 ContentProvider简介
结合上图,在自定义ContentProvider类时,除了需要继承ContentProvider之外,还要重写一些方法才能暴露数据的功能。方法如表所示。
从表中的各个方法可以看出,URI是一个非常重要的概念,下面详细介绍关于URI的知识。
初心至善 匠心育人
锋云智慧官网 www.fengyunedu.cn
10.1 数据共享标准:ContentProvider
10.1.2 URI简介
在第6章介绍Intent的Data属性时,简单讲解了URI。这里来做详细讲解。
URI代表了要操作的数据,URI主要包含了两部分信息:
(1)需要操作的ContentProvider
(2)对ContentProvider中的什么数据进行操作
而一个URI通常以下图所示的形式展示:
ContentProvider(内容提供者)的scheme已经由Android规定为“content://”。主机名(或叫Authority)用于唯一标识该ContentProvider,外部调用者可以根据这个标识来找到它。
初心至善 匠心育人
锋云智慧官网 www.fengyunedu.cn
10.1 数据共享标准:ContentProvider
10.1.2 URI简介
路径(path)可以用来表示我们要操作的数据,路径的构建应根据业务而定,例如:
操作person表中id为10的记录,可以构建这样的路径:/person/10。
操作person表中id为10的记录的name字段,构建路径:person/10/name。
操作person表中的所有记录,构建路径:/person。
操作xxx表中的记录,可以构建这样的路径:/xxx。
当然要操作的数据不一定来自数据库,也可以是文件、xml或网络等其他存储方式,例如:
操作xml文件中person节点下的name节点,需构建路径:/person/name。
初心至善 匠心育人
锋云智慧官网 www.fengyunedu.cn
10.1 数据共享标准:C
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。