Android 四大组件学习之ContentProvider一
ContentProvider作为四大组件之一,那它存在一定是有原因的? 那为什么引用ContentProvider呢? 我们先看一个例子。
大家在生活中用手机,比如你按了360手机管家, 其中360手机管家就有一个短信,通话记录,联系人备份的功能。那手机里的短信,联系人都是存放在数据库中的
比如联系人的信息是存放在contacts2.db中。既然数据是存放在数据库中的,那360手机管家就必须拿到这个数据。但是contac2.db对别的用户是没有权限的。那360是如何拿到手机联系人这些信息呢?
这时候Android系统就引入了ContentProvider。既然第三方程序不能直接操作数据库里的数据,但是第三方可以通过ContentProvider提供的接口去操作数据。所以说ContentProvider的作用就是:就是在不同应用程序之间实现数据的共享。就比如说联系人程序,想把自己的数据共享给别人,但是又不能让别人直接操作,所以联系人程序就通过ContentProvider将自己的数据暴露出来。但是第三方程序想获得该数据,就得必须通过ContentResolver去获得该数据。
那既然访问数据必须通过ContentResolver去访问ContentProvider暴露出来的数据,那ContentResolver是如何知道数据在那里存放的呢?前提是ContentProvider得告诉数据在那里,你去那里取。 这时候及引入另一个人概念Url。
提起URL,大家可能第一想法就是互联网上的URL(统一资源定位符)。此URL是互联网上的URL,而在Android系统中url代表的也是一个地址。但是两者是有区别的:
比如就以百度主页的图片网址为例:
对比看看我们Android中的URL:
既然知道URL是干什么的,那接下来学习URL的一些常用的方法:
1: 将一个字符串转化为URL
Uri uri = Uri.parse("contengt://com.demo.contentprovider/user/1");
2:为url路径加上ID部分
Uri uri = Uri.parse("content://com.demo.contentprovider/user");Uri resUri = ContentUris.withAppendedId(uri, 1);/*生成后的uri为: content://com.demo.contentprovider/user/1 */
3:匹配此URl是否合法
/*构造方法的默认值是返回-1, 代表时不匹配返回-1*/UriMatcher matcher = new UriMatcher(-1);/*如果匹配为:content://com.demo.contentprovider/user, 就返回为1*/matcher.addURI("com.demo.contentprovider", "user", 1);/*如果匹配为:content://com.demo.contentprovider/user/2, 就返回为2*/matcher.addURI("com.demo.contentprovider", "user/#", 2);//#代表通配符
今天关于ContentProvider以及URL的知识就说到这里
Android 四大组件学习之ContentProvider一相关推荐
- Android四大组件之——Activity的生命周期(图文详解)
转载请在文章开头处注明本博客网址:http://www.cnblogs.com/JohnTsai 联系方式:JohnTsai.Work@gmail.com [Andro ...
- Android四大组件之ContentProvider 全面解析,ContentResolver源码解析如何调用其它APP的ContentProvider
今天来总结下Android中的ContentProvider(以下简称CP),具体代码请见https://github.com/Mangosir/ContentProviderReview/tree/ ...
- Android四大组件之——Broadcast学习总结
1.Broadcast概念 是一个全局的监听器,属于Android四大组件之一.Broadcast(广播)是一种广泛运用的在应用程序(APP)之间传输信息的机制.而BroadcastReceiver( ...
- Android四大组件和启动模式(面试总结)
一.Android四大组件详解 Android四大组件分别为Activity.Service.Content Provider.Broadcast Receiver. 1.Activity (1)一个 ...
- Android四大组件之Content Provider
Android四大组件之Content Provider 作者:白璐 日期:2020/2/24 文章目录 Android四大组件之Content Provider 概述 内容提供器(Content P ...
- Android 四大组件通信核心
前言 系列文章: Android Activity创建到View的显示过程 Android 四大组件通信核心 Android 系统启动到App 界面完全展示终于明白(图文版) 我们知道Android ...
- Kotlin第七章: Android四大组件
1. 四大组件 四大组件是每一个Android人必须要会,要掌握的知识点,因为他们是我们在日常开发工作中打交道最频繁的组件,而且他们四个在不同的领域扮演着极其重要的角色. Activity: 负责用户 ...
- Android四大组件总结
四大组件系列文章 Activity总结和补充:Activity总结和补充_fdsafwagdagadg6576的博客-CSDN博客 Android Binder&Aidl理解和补充:Andro ...
- Android四大组件之一 ContentProvide
简介 Android四大组件之一 content provider,它主要的作用是:实现各个应用程序之间的(跨应用)数据共享. 在这里涉及到进程通信问题,自然在Android中使用的是binder来进 ...
- Android——四大组件、六大布局、五大存储
一.android四大组件 (一)android四大组件详解 Android四大组件分别为activity.service.content provider.broadcast receiver. 1 ...
最新文章
- 生成对抗网络(GAN)的理论与应用完整入门介绍
- 成功当选2014年度MVP
- 几种常用控件的使用方法
- springboot如何使用log4j记录日志
- 基础数据类型,注释,变量
- vb 访问远程计算机,vb 连接远程服务器
- 配置Memcache服务器并实现主从复制功能(repcached)(转)
- QCC300X 充电配置 调试笔记
- tongweb使用之端口冲突处理办法
- 计算机公式最小值,excel最小值函数
- 计算机图书管理系统测试用例,图书管理系统测试用例设计.doc
- 【华为电脑管家】打开多屏协同会自动修改微软拼音输入法兼容性的解决方案
- 工行网银B2c第三方接口开发
- 九存支持 2018全球存储半导体大会暨全球闪存技术峰会
- 学前端的你了解这些知识吗?——BFC、IFC、GFC、FFC
- <OS Concepts 9th> Chap 4 线程与并发
- 工程建设项目业务学习
- 孔子最得意的弟子颜回不幸英年早逝
- 多模态视觉任务Video Grounding介绍
- 主和取范式与主析取范式