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

RAKsmart 黑色星期五云服务器七折优惠 站群服务器首月半价

一年一度的黑色星期五和网络星期一活动陆续到来,看到各大服务商都有发布促销活动。同时RAKsmart商家我们也是比较熟悉的,这次是继双十一活动之后的促销活动。在活动产品中基本上沿袭双11的活动策略,比如有提供云服务器七折优惠,站群服务器首月半价、还有新人赠送红包等活动。如果我们有需要RAKsmart商家VPS、云服务器、独立服务器等产品的可以看看他们家的活动。这次活动截止到11月30日。第一、限时限...

Virmach 3.23美元可用6个月的VPS主机

Virmach 商家算是比较久且一直在低价便宜VPS方案中玩的不亦乐乎的商家,有很多同时期的商家纷纷关闭转让,也有的转型到中高端用户。而前一段时间也有分享过一次Virmach商家推出所谓的一次性便宜VPS主机,比如很低的价格半年时间,时间到服务器也就关闭。这不今天又看到商家有提供这样的产品。这次的活动产品包括圣何塞和水牛城两个机房,为期六个月,一次性付费用完将会取消,就这么特别的产品,适合短期玩玩...

UCloud云服务器香港临时补货,(Intel)CN2 GIA优化线路,上车绝佳时机

至今为止介绍了很多UCLOUD云服务器的促销活动,UCLOUD业者以前看不到我们的个人用户,即使有促销活动,续费也很少。现在新用户的折扣力很大,包括旧用户在内也有一部分折扣。结果,我们的用户是他们的生存动力。没有共享他们的信息的理由是比较受欢迎的香港云服务器CN2GIA线路产品缺货。这不是刚才看到邮件注意和刘先生的通知,而是补充UCLOUD香港云服务器、INTELCPU配置的服务器。如果我们需要他...

contentprovider为你推荐
ioeIOE是什么意思md5值md5值什么用策略组组策略是什么?备忘录模式Java中常用的设计模式有哪些?请详细说明一下工厂模式。imqq官网如何伸请QQ?layoutsubviews如何设置plus.nativeui.toast的样式qq业务中心QQ业务办理数据分析报告范文800字统计分析报告sungard上海sungard 中国区那家公司怎么样啊 谢谢酷源码怎样看源码下优酷视频
韩国vps godaddy域名解析教程 highfrequency godaddy主机 Hello图床 godaddy域名优惠码 服务器日志分析 2017年万圣节 100x100头像 有益网络 河南移动邮件系统 个人免费主页 域名dns smtp虚拟服务器 lamp怎么读 网站防护 国外免费网盘 hosting24 中美互联网论坛 cx域名 更多