ContentProvider

2020-04-07  本文已影响0人  Dream_Book

文章仅做个人笔记使用:

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

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

ContentResolver:内容解析者

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

ContentObserver:内容监听者

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

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

上一篇 下一篇

猜你喜欢

热点阅读