Android ContentProvider 内容提供者
接下来我们开始学习 Android ContentProvider
(内容提供者)
ContentProvider
(内容提供者) 可以让我们的 APP 访问别的应用,或者说一些 ContentProvider 暴露给我们的一些数据,比如手机联系人,短信等,如果我们想对这些数据进行读取或者修改,就需要用到 ContentProvider
当然了, ContentProvider
也允许我们将自己应用里的数据暴露出来,给其它的应用进行读取或操作,我们可以选择要暴露的数据,可以避免了我们隐私数据的的泄露
Android ContentProvider
当我们想允许自己 APP 的数据开放给别的 APP 进行读取操作,我们就需要让 APP 实现 ContentProvider
类,同时注册一个 URI
,然后其它的 APP 就可以通过 ContentResolver
根据 URI
就可以访问我们 APP 的数据
数据可以是任何内容,比如数据库,一个文件,一个 XML 或者其它
当然了,后面我们会学到的 SharedPreference
则使用基于数据库模型的简单表格提供数据
ContentProvider 运行流程
Android ContentProvider 的运行原理可以用一张图来表示
URI
URI,统一资源标识符(Uniform Resource Identifier,或 URI)是一个用于标识某一互联网资源名称的字符串,比如本文的地址也是一个 URI
http://www.twle.cn/yufei/android-basic-contentprovider.html
URI 对 ContentProvider
非常重要,因为 ContentProvider 使用以
content://` 开头的 URI 协议
content://cn.twle.android.provider.MsLanguageProvider/lang/kotlin
-
content://
协议头,功能类似
http://
和ftp://
,ContentProvider
只会识别以content://
开头的 URI 协议 -
cn.twle.android.provider.MsLanguageProvider
ContentProvider
所在的全限定类名,就是包名+类名
-
lang
资源部分,如果想访问
lang
下的所有资源,则可以去掉/kotlin
-
kotlin
就是
lang
下的kotlin
资源