美文网首页
ContentProvider匹配方式

ContentProvider匹配方式

作者: 吴大明 | 来源:发表于2018-02-07 16:39 被阅读0次

ContentProvider提供了一种资源访问的能力,这种能力是基于文件系统、数据库系统。网络,而不是基于进程空间,也就是说可以在app之间共享数据。

交互方式

在app开发中我们不直接与ContentProvider交互,而是通过ContentResolver对象。看起来ContentProvider是由系统来管理的,对于应用程序透明。流程看起来如此:ContentResolver将URI提交给系统,系统根据一定规则解析URI,初始化一个ContentProvider,这个ContentProvider通过URI定位到具体资源。ContentResolver通过IContentProvider指定资源的操作方式,insert、delete、bulkInsert等。

为什么要以这种方式交互呢?因为ContentProvider并不是只能由系统提供,app也可以提供。

如何定位ContentProvider

URI对应部分含义,以图片为例。

URI示例

1. content:// 是通用前缀,表示该UIR用于ContentProvider定位资源。

2. authority 是授权者名称,用来确定具体由哪一个ContentProvider提供资源。因此一般authority都由类的小写全称组成,以保证唯一性。根据authority定位到ContentProvider类。

3. data_path 是数据路径,用来确定请求的是哪个数据集。如果ContentProvider近提供一个数据集,数据路径则可以省略。

4. id是数据编号,用来唯一确定数据集中的一条记录,匹配数据集中_ID字段的值。如果请求的数据不只一条,< id >可以省略。

ContentProvider的注册

<provider

            android:authorities="com.example.peopleprovider"

            android:name=".Peopleprovider"/>

以上注册对应的URI:content://com.example.peopleprovider//

相关文章

网友评论

      本文标题:ContentProvider匹配方式

      本文链接:https://www.haomeiwen.com/subject/eoagzxtx.html