什么是 ContentProvider,它通常用于什么?

What is a ContentProvider and what is it typically used for?

我是 android 开发的初学者,需要有关 ContentProvider 的帮助。

public class My Application extends  ContentProvider {}

ContentProvider 管理对一组结构化数据的访问。它封装数据并提供定义数据安全性的机制。 ContentProvider 是将一个进程中的数据与另一个进程中的代码 运行 连接起来的标准接口。

请参考以下链接,

https://developer.android.com/guide/topics/providers/content-provider-creating.html

https://www.tutorialspoint.com/android/android_content_providers.htm

内容提供程序组件根据请求从一个应用程序向其他应用程序提供数据。一个应用程序无法直接访问 (read/write) 其他应用程序的数据。每个应用程序都有自己的 id 数据目录和自己的受保护内存区域。 内容提供者是跨应用程序共享数据的最佳方式。内容提供者是一组包裹在自定义 API 中以供读写的数据。 Applications/Processes 必须将自己注册为数据提供者。 用简单的语言,您可以说内容提供者是一个公开其属性的共享数据库,其他应用程序可以代表它们访问和存储数据,具体实施权限

ContentProvider主要用于一个应用程序向另一个应用程序访问数据。

例如,通过使用 ContentProvider 我们可以获得 phone 联系人,从 phone 到我们自己的应用程序的通话记录 android.we 也可以访问存储在 (sqlite) 数据库中的数据.

内容提供者可以帮助应用程序管理对自己存储的数据和其他应用程序存储的数据的访问,并提供一种与其他应用程序共享数据的方法。它们封装数据,并提供定义数据安全性的机制。内容提供程序是将一个进程中的数据与另一个进程中的代码 运行 连接起来的标准接口。实施内容提供者有很多优点。最重要的是,您可以配置内容提供程序以允许其他应用程序安全地访问和修改您的应用程序数据。 它们并不是仅用于与其他应用程序共享数据。您仍然可以使用它们,因为它们提供了一个很好的抽象,但您不必一定要与其他应用程序共享数据。这种抽象允许您对应用程序数据存储实现进行修改,而不会影响依赖于访问您的数据的其他现有应用程序

您可以从 documentation 获得更多信息。