我在互联网上观看了关于ContentProvider
的课程,演示了如何定义和使用ContentProvider
。getContentResolver()如何工作?
我感到困惑使用名为getContentResolver()
方法。这种方法返回什么?
我ContentProvider
不是实例化和代码只是写道:getContentProvider().query()
。
我不明白ContentProvider
是如何工作的。
我在互联网上观看了关于ContentProvider
的课程,演示了如何定义和使用ContentProvider
。getContentResolver()如何工作?
我感到困惑使用名为getContentResolver()
方法。这种方法返回什么?
我ContentProvider
不是实例化和代码只是写道:getContentProvider().query()
。
我不明白ContentProvider
是如何工作的。
它返回内容解析器。
什么是内容解析器?
内容解析器是应用程序的单一的全球实例,提供访问您(和其他应用程序的)内容提供商。 Content Resolver的行为完全如其名称所暗示的那样:它接受来自客户端的请求,并通过将其指向具有不同权限的内容提供者来解决这些请求。要做到这一点,内容解析器会将权限映射到内容提供者。这种设计很重要,因为它允许访问其他应用程序的内容提供者的简单而安全的方式。
内容解析器包括CRUD(创建,读取,更新,删除)对应于内容提供者类的抽象方法(插入,删除,查询,更新)的方法。内容解析器不知道它与之交互的内容提供者的实现(也不需要知道);每个方法都被传递一个指定要与之交互的内容提供者的URI。
什么是内容提供者?
鉴于内容解析器提供了从该应用程序的内容提供者的抽象,内容提供商提供了从基础数据源(即SQLite database
)的抽象。它们提供了定义数据安全性的机制(即通过强制执行读/写权限)并提供一个标准接口,将一个进程中的数据与另一个进程中运行的代码连接起来。
内容提供商提供发布和使用的数据提供一个接口,周围使用content:// schema
简单URI寻址模式为基础。它们使您能够将应用程序层与底层数据层分离,通过抽象底层数据源使您的应用程序数据源不可知。
非常感谢 – Kross
getContentResolver()为你的应用程序的包返回一个ContentResolver的实例。
从developer.android.com粘贴
内容提供商管理访问结构化的数据集。它们封装数据,并提供定义数据安全性的机制。内容提供者是将一个进程中的数据与另一个进程中运行的代码连接起来的标准接口。
当您想要访问内容提供者中的数据时,可以使用应用程序的Context中的ContentResolver对象作为客户端与提供者进行通信。 ContentResolver对象与提供者对象通信,提供者对象是一个实现ContentProvider的类的实例。提供程序对象接收来自客户端的数据请求,执行请求的操作并返回结果。
http://developer.android.com/guide/topics/providers/content-providers.html
也许寻找它的来源将帮助? – azizbekian