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:美国联通CUVIPCUVIP限时cuvip、AS9929、GIA/韩国CN2机房限时六折

pigyun怎么样?PIGYunData成立于2019年,2021是PIGYun为用户提供稳定服务的第三年,目前商家提供香港CN2线路、韩国cn2线路、美西CUVIP-9929、GIA等线路优质VPS,基于KVM虚拟架构,商家采用魔方云平台,所有的配置都可以弹性选择,目前商家推出了七月优惠,韩国和美国所有线路都有相应的促销,六折至八折,性价比不错。点击进入:PIGYun官方网站地址PIGYUN优惠...

博鳌云¥799/月,香港110Mbps(含10M CN2)大带宽独立服务器/E3/8G内存/240G/500G SSD或1T HDD

博鳌云是一家以海外互联网基础业务为主的高新技术企业,运营全球高品质数据中心业务。自2008年开始为用户提供服务,距今11年,在国人商家中来说非常老牌。致力于为中国用户提供域名注册(国外接口)、免费虚拟主机、香港虚拟主机、VPS云主机和香港、台湾、马来西亚等地服务器租用服务,各类网络应用解決方案等领域的专业网络数据服务。商家支持支付宝、微信、银行转账等付款方式。目前香港有一款特价独立服务器正在促销,...

傲游主机38.4元起,韩国CN2/荷兰VPS全场8折vps香港高防

傲游主机怎么样?傲游主机是一家成立于2010年的老牌国外VPS服务商,在澳大利亚及美国均注册公司,是由在澳洲留学的害羞哥、主机论坛知名版主组长等大佬创建,拥有多家海外直连线路机房资源,提供基于VPS主机和独立服务器租用等,其中VPS基于KVM或者XEN架构,可选机房包括中国香港、美国洛杉矶、韩国、日本、德国、荷兰等,均为CN2或者国内直连优秀线路。傲游主机提供8折优惠码:haixiuge,适用于全...

contentprovider为你推荐
soapui下载SoapUi怎么安装策略组组策略是什么?最开放的浏览器目前最好的游览器?slideshare佳能复印MG3620怎么使用?备忘录模式华为荣耀5X怎么在手机上新建一个备忘录网页微信客户端什么叫微信网页版?和电脑版是一回事吗?相似图片搜索怎么找手机上的一张相似图片?jsindexofjavascript 中indexof 的用法疫苗之王万兽之王是什么意思数学作业不知道数学作业怎么办?
windows虚机 网站域名备案查询 日本私人vps 美国vps推荐 technetcal hawkhost mach5 哈喽图床 铁通流量查询 中国电信测速112 共享主机 ftp免费空间 中国电信网络测速 秒杀品 测速电信 购买空间 阿里dns 双十二促销 七十九刀 windowsserver2008 更多