contentprovidercontentprovider用在什么场合?需要实现哪些接口?

contentprovider  时间:2021-07-04  阅读:()

ContentProvider与ContentResolver里面的增删改查有什么区别

ContentProvider与ContentResolver里面的增删改查有什么的区别 个人理解是 ContentProvider本来就是用来数据共享的,他提供的是接口,其他程序调用的接口;你也知道,有些程序是不允许别的程序修改自己程序的数据的,那如果ContentProvider和ContentResolver没有区别的话,那是不是意味着 只要知道某个app的uri,那就可以毫无保留的去访问其他app的数据了??? 他们的区别简而言之,如果你想将你特定的数据进行共享,那么就要参照ContentProvider提供一个“接口”,不然其他app无法修改你,即使修改你的,也只能修改你的特定数据 ContentResolver,是用来调用其他app提供的“接口”作用的,他不能对其他app的数据进行任意的修改,只能对提供了contentProvider的程序才能修改,并且要匹配对uri; 如果你还要问 为什么不把修改的这个“提供接口”和“修改数据”都放在contentProvider里 而不是一个在contentProvider,一个在contentResolver里,那我只能说这是设计需要,具体为什么这么设计 ,我还没那么高的水平!期待高手指正!

简述开发contentprovider的步骤有哪些

首先在数据提供者的应用里创建一个类,继承ContentProvider ,然后在androidMainfest.xml 文件中去配置这个ContentProvider 子类 准备好数据库操作类,数据库访问类,示例代码如下: 在之前创建好的PersonDBProvider中增加如下代码,初始化一个UriMatcher,为了简单起见,只增加一个匹配的URI: 在PersonDBProvider中增加操作方法,需要使用到DBHelper数据库帮助类和PersonDao数据库操作类: 至此,我们的提供者已经准备好了,接下来就可以重新创建一个应用,然后使用该提供者提供的内容数据了: 最后,将两个应用一起部署到模拟器上,查看效果: 通过如上测试,我们就看到了由Login应用提供的数据被Test应用获取到了。

为什么有contentprovider

ContentProvider是干嘛用的?它被用于跨进程做数据共享用。

其实你把Android的四大金刚(组件)放到一起,仔细想想他们各自的用途就会发现都是必不可少。

他们共同的特点是跨进程。

做为java工程师,想写个跨进程的东西不是很好写吧。

Activity用于展示数据内容,不同的activity可以通过intent跨进程进行调用。

比如在Gallery中调用邮件分享照片 Service用于实现进程间方法的调用。

被举得最多的栗子就是UI调用音乐播放服务。

Service不仅仅是在后台运行的一段代码而已。

如果是这样的话,为什么不自己写个handle-looper在自己的app中默默运行呢?关键在于跨进程通信ipc。

ContentProvider用于共享数据。

多个进程间共享数据,可以通过共享文件的方法,而共享文件的话,权限自己怎么控制呢?linux的内存映射和管道什么的在android好像调用不了,好吧我没调用过 >_<|||。

ContentProvider让开发者能够在拥有读写权限的情况下通过一条地址(比如content:/.fool/tab1)来访问共享数据。

BroadcastReceiver,可以接收系统和任意app发出的信号intent,如果通过匹配则配触发。

同样是跨进程的。

日常开发的大部分任务都是开发单个进程的app,所以这些跨进程的东西有啥用?如果你的app是个大胖子吃了很多内存(比如图片应用),android对内存是有限制的,oom是经常遇到的头疼的问题吧。

android对每个进程的内存使用量是有限制的,而你要是在一个app中开多个进程协同作战,将内存大户发配到不同的进程中,oom就没那么容易了。

AndroidManifest.xml的activity内有个process属性,用于让app分配不同进程,而默认都在一个进程中。

这时,如果你有相同的内容要在两个不同进程的activity中展示,同时在某些情况下要对其修改,是不是就得用进程数据共享了?ContentProvider在这时就有用场了。

大部分时候都只需要调用系统的ContentResolver来操作,调用参数都被封印在android.provider包的各个类中。

MediaStore这个类就很有用哦。

访问多媒体资源就靠它了。

android继承了linux而拥有了一个类似文件数据库的东西,里面存着各种文件的路径信息。

MediaStore就是访问媒体文件的入口。

自己做ContentProvider可以向外提供两种数据:格式化数据和流数据。

格式化数据就是类似数据库中的表。

当然你不是一提ContentProvider就想起数据库,用一个叫MatrixCursor可以在没有数据库的情况下返回cursor对象。

流数据指的就是文件。

e799bee5baa6e78988e69d8331333337613264这包括自己在/data/data中的数据也包括apk中的资源数据。

这些数据其他apk在没有root权限的情况下是没法访问的,而ContentProvider说,我能。

怎么自建ContentProvider就去其他地方查吧。

contentprovider用在什么场合?需要实现哪些接口?

contentprovider在插件开发和RCP开发中常常被用到,譬如你要创建一个TreeViewer(树形控件)就需要一个ITreeContentProvider,如果要实现一个TableViewer(表控件)就需要一个 IStructuredContentProvider.,contentprovider主要的作用就是返回当前界面中的数据. 给你段代码: 这段代码是给TreeViewer使用的,实现了一个简单资浏览器. private class TreeViewerContentProvider implements ITreeContentProvider { @Override public void dispose() { } @Override public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } @Override public Object[] getElements(Object inputElement) { return this.getChildren(inputElement); } @Override public Object[] getChildren(Object parentElement) { File parentFile = (File) parentElement; return parentFile.listFiles(); } @Override public Object getParent(Object element) { File file = (File) element; return file.getParentFile(); } @Override public boolean hasChildren(Object element) { File parentFile = (File) element; File[] childFiles = parentFile.listFiles(); if (childFiles == null || childFiles.length == 0) { return false; } return true; } }

PIGYun中秋特惠:香港/韩国VPS月付14元起

PIGYun发布了九月份及中秋节特惠活动,提供8折优惠码,本月商家主推中国香港和韩国机房,优惠后最低韩国每月14元/中国香港每月19元起。这是一家成立于2019年的国人商家,提供中国香港、韩国和美国等地区机房VPS主机,基于KVM架构,采用SSD硬盘,CN2+BGP线路(美国为CUVIP-AS9929、GIA等)。下面列出两款主机配置信息。机房:中国香港CPU:1core内存:1GB硬盘:10GB...

无忧云:洛阳BGP云服务器低至38.4元/月起;雅安高防云服务器/高防物理机优惠

无忧云怎么样?无忧云,无忧云是一家成立于2017年的老牌商家旗下的服务器销售品牌,现由深圳市云上无忧网络科技有限公司运营,是正规持证IDC/ISP/IRCS商家,主要销售国内、中国香港、国外服务器产品,线路有腾讯云国外线路、自营香港CN2线路等,都是中国大陆直连线路,非常适合免备案建站业务需求和各种负载较高的项目,同时国内服务器也有多个BGP以及高防节点。一、无忧云官网点击此处进入无忧云官方网站二...

两款半月湾 HMBcloud 春节88折日本和美国CN2 VPS主机套餐

春节期间我们很多朋友都在忙着吃好喝好,当然有时候也会偶然的上网看看。对于我们站长用户来说,基本上需要等到初八之后才会开工,现在有空就看看是否有商家的促销。这里看到来自HMBcloud半月湾服务商有提供两款春节机房方案的VPS主机88折促销活动,分别是来自洛杉矶CN2 GIA和日本CN2的方案。八八折优惠码:CNY-GIA第一、洛杉矶CN2 GIA美国原生IP地址、72小时退款保障、三网回程CN2 ...

contentprovider为你推荐
mdm中国移动mdm是干什么的移动测速什么是流动测速开票系统国税承认的开票系统有哪些洗牌算法关于洗牌算法,请用JAVA编写,定义一个数组,储存1-52以内的数,打乱顺序输出!知识库管理系统知识库管理软件与档案管理软件有什么区别qq号查询现成的qq号和密码查询调度系统操作系统中为什么需要调度?网页微信客户端什么叫微信网页版?和电脑版是一回事吗?spawningVC中Error spawning cl.exe错误的解决方法.spawning在c语言编译时出现Error spawning cl.exe,是怎么回事?
网通服务器租用 主机 美国主机推荐 安云加速器 韩国空间 ix主机 isatap la域名 gateone 天猫双十一秒杀 警告本网站 免费ftp站点 web服务器架设 cdn联盟 老左正传 91vps gtt 酷番云 idc查询 免费mysql数据库 更多