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; } }

RackNerd提供四款高配美国服务器促销活动低至月$189

RackNerd 商家给的感觉就是一直蹭节日热点,然后时不时通过修改配置结构不断的提供低价年付的VPS主机,不过他们家还是在做事的,这么两年多的发展,居然已经有新增至十几个数据中心,而且产品线发展也是比较丰富。比如也有独立服务器业务,不过在他们轮番的低价年付VPS主机活动下,他们的服务器估摸着销路不是太好的。这里,今天有看到RackNerd商家的独立服务器业务有促销。这次提供美国多个机房的高配独立...

Vultr VPS新增第18个数据中心 瑞典斯德哥尔摩欧洲VPS主机机房

前几天还在和做外贸业务的网友聊着有哪些欧洲机房的云服务器、VPS商家值得选择的。其中介绍他选择的还是我们熟悉的Vultr VPS服务商,拥有比较多达到17个数据中心,这不今天在登录VULTR商家的时候看到消息又新增一个新的机房。这算是第18个数据中心,也是欧洲VPS主机,地区是瑞典斯德哥尔摩。如果我们有需要欧洲机房的朋友现在就可以看到开通的机房中有可以选择瑞典机房。目前欧洲已经有五个机房可以选择,...

零途云月付31.9元起,香港cn2 gia线路

零途云是一家香港公司,主要产品香港cn2 gia线路、美国Cera线路云主机,美国CERA高防服务器,日本CN2直连服务器;同时提供香港多ip站群云服务器。即日起,购买香港/美国/日本云服务器享受9折优惠,新用户有优惠码:LINGTUYUN,使用即可打折。目前,零途云还推出性价比非常高香港多ip站群云服务器,有需要的,可以关注一下。零途云优惠码:优惠码:LINGTUYUN (新用户优惠,享受9折优...

contentprovider为你推荐
fclose为什么fclose之后remove还是不成功foxmail邮箱注册如何注册FOXMAIL邮箱的帐号啊?bindserviceservice在手机程序中起什么作用deviceid如何查看自己安卓手机的Android Device ID拓扑关系简述空间数据的拓扑关系及其对GIS数据处理和空间分析有何重要意义?备忘录模式华为荣耀5X怎么在手机上新建一个备忘录jdk6JDK6和JDK7两个版本有什么区别,初学者选那个好?索引超出了数组界限什么是索引超出了数组界限民生电商陆金所、民生电商哪个更适合投资?faq是什么意思在国际贸易中“FAQ”代表的是什么意思
免费网站域名注册 个人域名备案 免费域名解析 高防dns 主机点评 紫田 回程路由 轻博 万网优惠券 创梦 空间出租 香港新世界中心 江苏双线服务器 免费ftp 万网空间 国外免费云空间 1美元 谷歌搜索打不开 sonya reboot 更多