首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

ContentProvider 源码分析

ContentProvider 简介 ContentProvider 作为 Android 四大组件中的一种,为我们提供了不同进程甚至是不同应用程序之间共享数据的机制。...ContentProvider 的生命周期默认在 Application onCreate() 之前,而且都是在主线程创建的,这和其他四大组件是不同的 ContentProvider 多进程模式,它可以和...ContentProvider 、 ContentResolver 、 ContentObserver 之间的关系 ContentProvider 内容提供者,用于对外提供数据 ContentResolver.notifyChange...ContentProvider 创建源码分析 ContentProvider 启动会伴随进程的启动,在ActivityManagerService中,启动进程是由startProcessLocked方法来完成的...通过ClassLoader进行加载ContentProvider,完成ContentProvider对象创建 final java.lang.ClassLoader cl = c.getClassLoader

61320

ContentProvider初探

引言 我们什么时候 会用到ContentProvider呢? 1.我们想在自己的应用中访问别的应用,或者说一些ContentProvider暴露给我们的一些数据, 比如手机联系人,短信等!...我们想对这些数据进行读取或者修改,这就需要用到ContentProvider了!...使用系统提供的ContentProvider 其实很多时候我们用到ContentProvider并不是自己暴露自己的数据,更多的时候通过 ContentResolver来读取其他应用的信息,最常用的莫过于读取系统...的初探就到这里,我们学习了: ContentProvider的概念以及流程,使用系统提供的一些ContentProvider,以及定制自己的ContentProvider, 最后还讲解了通过ContentObserver...监听ContentProvider的数据变化,ContentProvider的内容就掌握得差不多 了.

48630

Android中ContentProvider简介

,借助contentprovider对数据进行增删该查,上层利用Android组件进行交互。...于是想着给自己新写的项目也添加个contentProvider来学习Android谷歌工程师的高大上,但从未用过contentprovider,这是第一次用,用完之后就发现一个问题 第一,contentprovider...contentprovider 第三,如果是一个程序间进行数据修改,完全可以自己集成一个提供增删改查的方法 所以呢,在你决定使用contentprovider之前先要看看你是否有使用它的必要。...在解决问题之前,首先要分析问题,先动脑然后再动手 尽管如此,我还是依旧学习了一些contentprovider的用法,不为用在项目中,只是为了完善自己的知识体系。...可以看到这样集成在每次调用时会超级麻烦,还不如自己集成的,所以如果是一个应用之间数据增删该查,不建议你使用contentProvider 如果看过我以前的博客的可以发现我早在半年前就打算去总结一个contentprovider

67460

Android中ContentProvider的用法

的时候就被废除了,那么现在要在不同的Android程序之间共享数据的话就只能通过ContentProvider(内容提供器)来实现了(排除你是黑客的前提下)。...首先,如果要访问一个应用程序通过ContentProvider共享的数据,一定要借助ContentResolver类,我们可以通过Context类的getContentResolver()方法获取ContentResolver...和数据库操作不同的是,ContentResolver类的这些操作都不是通过数据库表名进行的,而是通过传入ContentProvider共享数据的Uri(统一资源标识符,通过它可以找到任何文件所处的位置)...sortOrder) 第一个参数是要查询的数据所在数据表的Uri,第二个参数是要查询的具体列的信息,第三第四个参数是要查询的数据满足的条件, 第五个参数是查询结果的排序方式 下面通过一个小例子来理解: 通过ContentProvider...来读取联系人信息并且建立自定义的ContentProvider,新建一个Android工程: main_activity.xml: <LinearLayout xmlns:android="http

2K10

ContentProvider使用方法详解

本篇文章主要介绍 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容: ContentProvider 获取联系人信息的方法 获取短信内容的方法 ContentResolver 内容解析者 ContentObserver...内容观察者 ContentProvider ContentResolver ContentObserver 三者关系 我们不是牛逼的程序员,我们只是程序开发中的垫脚石。...ContentProvider 实现ContentProvider 继承关系 四大组件之一,必须在Androidmainfest.xml 中注册 注意 : URI 中的元素 android:authorities...="ProgramAndroid" 继承 ContentProvider 实现增删改查等方法 提供对外提供操作的数据库方法 其他APK 访问此ContentProvider 数据库的方法 注意 : //...ContentProvider ContentResolver ContentObserver 三者关系 三者关系图如下 关系图.png 至此,本篇已结束,如有不对的地方,欢迎您的建议与指正。

761100

你真的懂ContentProvider

ContentProvider 的接口调用参数和 call 函数调用并没有使用匿名共享机制,Binder有1024的限制,传输数据如果过大,就会抛出异常 安全性 虽然 ContentProvider...在分析 ContentProvider 的收集过程中,验证了自定义 ContentProvider 必须在 AndroidManifest.xml 注册,这里是在AMS里验证的 回到 ActivityThread...2.创建当前进程的 Application 对象,首先回调其 attach 方法,这步发生在遍历 ContentProvider 集合之前,创建每个 ContentProvider 并回调其 onCreate...**ContentProvider 加载和创建都是在主线程完成,并且还都是在应用启动过程完成,**ContentProvider 的生命周期默认在 Application onCreate 之前。...这也验证了文章开头为大家介绍的启动性能,在使用 ContentProvider 需要注意的“暗坑”,自定义 ContentProvider 类的构造函数、静态代码块、onCreate 函数都尽量不要做耗时的操作

51320
领券