美文网首页android 技术梳理
我问你答-简述 Content Provider 的基本用法

我问你答-简述 Content Provider 的基本用法

作者: jkwen | 来源:发表于2021-01-11 17:04 被阅读0次

    以下内容来自对官网文档的阅读理解

    providers and provider clients

    首先,content provider 对外提供的数据就像关系数据库的表数据一样。一行就代表某个数据类型的实例,一列就代表着实例对象的某个属性。这就暗示了,content provider 对数据的管理就类似于关系数据库一样,有着基本的 ”增删改查“操作。

    如果想通过 content provider 获取数据,就要使用 ContentResolver类,这个就作为 provider client。通过 ContentResolver 可与 provider 进行增删改查的交互,例如在 Activity 中可以通过方法 getContentResolver() 获取到。

    Activity/Fragment 中具体的调用流程可见 图1,通过 CursorLoader 可异步进行数据操作,而不影响主线程工作。


    图 1.png

    Content URI 即数据

    content URI 是指一个路径字符串,其代表的含义就是 content provider 提供的一个数据。它有两部分组成,authority 和 path,前者表示 provider 完整的名称,后者表示数据点所在位置。

    作为数据提供方

    如果想自定义 content provider 来为其他模块或应用提供数据,首先要考虑这是否确实需要:

    1. 想要为其他应用提供数据
    2. 允许用户复制应用数据给其他应用
    3. 通过系统的搜索功能想提供一些搜索建议
    4. 想给系统组件提供应用数据

    如果满足以上任意一点,那就做好设计,大胆去实现自定义 provider 吧。

    至于仅是应用内部的数据存储或者数据库管理,官方建议是没必要用 content provider 的,额。。。我想可能用起来比较麻烦吧,也可能官方的意思更希望 content provider 用于应用间的数据通信。

    相关文章

      网友评论

        本文标题:我问你答-简述 Content Provider 的基本用法

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