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

TabbyCloud周年庆&七夕节活动 美國INAP 香港CN2

TabbyCloud迎来一周岁的生日啦!在这一年里,感谢您包容我们的不足和缺点,在您的理解与建议下我们也在不断改变与成长。为庆祝TabbyCloud运营一周年和七夕节,TabbyCloud推出以下活动。TabbyCloud周年庆&七夕节活动官方网站:https://tabbycloud.com/香港CN2: https://tabbycloud.com/cart.php?gid=16购买链...

盘点AoYoZhuJi傲游主机商8个数据中心常见方案及八折优惠

傲游主机商我们可能很多人并不陌生,实际上这个商家早年也就是个人主机商,传说是有几个个人投资创办的,不过能坚持到现在也算不错,毕竟有早年的用户积累正常情况上还是能延续的。如果是新服务商这几年确实不是特别容易,问到几个老牌的个人服务商很多都是早年的用户积累客户群。傲游主机目前有提供XEN和KVM架构的云服务器,不少还是亚洲CN2优化节点,目前数据中心包括中国香港、韩国、德国、荷兰和美国等多个地区的CN...

41云,服务器8折优惠券,200G TCP防御

41云怎么样?41云是国人主机品牌,目前经营产品有国内外云服务器、CDN(高防CDN)和物理机,其中国内外云服务器又细分小类有香港限流量VPS、香港大带宽VPS、香港弹性自选VPS、香港不限流VPS、香港BGP线路VPS、香港Cera+大带宽机器、美国超防VPS、韩国原生VPS、仁川原生VPS、日本CN2 VPS、枣庄高防VPS和金华高防VPS;物理机有美国Cera服务器、香港单程CN2服务器、香...

contentprovider为你推荐
食品商务网食品方面的网站那个最好!图片地址怎么获得图片地址fcloseC语言fclose错误溢出隐藏overflow:hidden用在哪里?查字网騳骉,怎样读?拼音电子日历我想做个项目 如何在电子日历中进行时间的选择天融信防火墙都说天融信的产品不错,那天融信的下一代防火墙真的是当今最好的防火墙产品了吗?inode智能客户端inode智能客户端无法正常启动,根本开都开不了radius认证PPPoE有认证的功能,RADIUS也有验证功能,两者有区别么??smartuploadjspsmartupload如何使用?
租服务器 主机屋 香港ufo 香港服务器99idc 优key 表格样式 2017年万圣节 免费ftp空间申请 yundun 重庆电信服务器托管 丽萨 申请免费空间 学生服务器 江苏徐州移动 小夜博客 达拉斯 byebyelove vpsaa 阿里云主机 56折扣网 更多