美文网首页
ContentProvider

ContentProvider

作者: Dream_Book | 来源:发表于2020-04-07 10:48 被阅读0次

    文章仅做个人笔记使用:

    它们封装数据并通过单个ContentResolver接口将其提供给应用程序 。仅当需要在多个应用程序之间共享数据时,才需要内容提供程序。例如,联系人数据由多个应用程序使用,并且必须存储在内容提供商中。如果您不需要在多个应用程序之间共享数据,也可以使用它们,它们提供了很好的抽象,这种抽象使您可以对应用程序数据存储实现进行修改,而不会影响依赖于数据访问的其他现有应用程序,可以直接通过使用数据库 SQLiteDatabase。必须在清单中声明

    • onCreate():用来初始化提供者

    • query(Uri, String[], Bundle, CancellationSignal): 它将数据返回给调用者

    • insert(Uri, ContentValues):将新数据插入内容提供者

    • update(Uri, ContentValues, Bundle):更新内容提供者中的现有数据

    • delete(Uri, Bundle):从内容提供商删除数据

    • getType(Uri): 返回内容提供程序中数据的MIME类型

    insert()、update()、delete()、getType()可以从多个线程调用,并且是线程安全的。onCreate()只能从应用程序主线程调用,并且不能做耗时操作。

    ContentResolver:内容解析者

    通过相应的规则解析内容提供者提供的数据。

    ContentObserver:内容监听者

    目的是观察(捕捉)特定Uri引起的数据库的变化,继而做一些相应的处理,它类似于数据库技术中的触发器(Trigger),当ContentObserver所观察的Uri发生变化时,便会触发它。触发器分为表触发器、行触发器,相应地ContentObsever也分为表ContentObserver行ContentObserver,当然这是与它所监听的Uri MIME Type有关的。

    使用ContentResolver来获取ContentProvider提供的数据,同时注册ContentObserver监听Uri数据的变化。

    相关文章

      网友评论

          本文标题:ContentProvider

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