Java 了解内容提供程序和解析程序

Java 了解内容提供程序和解析程序,java,android,android-contentresolver,Java,Android,Android Contentresolver,我了解,内容解析程序接受来自客户端的请求,并通过将这些请求定向到具有不同权限的内容提供商来解析这些请求 我正在使用queryCalendar方法,我注意到没有对内容提供者的调用。我只看到内容解析器的代码: ContentResolver cr=getContentResolver() 为什么没有呼叫内容提供商?,因为内容提供商是由Android系统本身实现的。如果查看代码,您将看到以下内容: Uri uri = Calendars.CONTENT_URI; 在Android系统中,某个地方有一

我了解,内容解析程序接受来自客户端的请求,并通过将这些请求定向到具有不同权限的内容提供商来解析这些请求

我正在使用
queryCalendar
方法,我注意到没有对内容提供者的调用。我只看到内容解析器的代码:
ContentResolver cr=getContentResolver()


为什么没有呼叫内容提供商

,因为内容提供商是由Android系统本身实现的。如果查看代码,您将看到以下内容:

Uri uri = Calendars.CONTENT_URI;
在Android系统中,某个地方有一个已注册的内容提供商,用于处理该Uri的内容提供商请求

简言之:如果你想将某些数据公开给另一个应用程序,你只能面对内容提供商(当然,没有人阻止你在应用程序中使用它)。然后,您需要实现自己的一个(并通过Uri公开它)。内容解析器是使用Uri与内容提供者对话的东西


您还可以查看如何定义自己的内容提供程序。

您可以看到对ContentResolver的调用,因为ContentResolver负责调用ContentProvider的方法并返回数据

写在

“当您想要访问内容提供商中的数据时,您可以在应用程序的上下文中使用ContentResolver对象作为客户端与提供商通信。ContentResolver对象与提供者对象通信,提供者对象是实现ContentProvider的类的实例。provider对象从客户端接收数据请求,执行请求的操作,并返回结果。“

如果您想正确了解内容提供商

以下教程是了解如何正确实现内容提供商的最佳在线教程(以及官方教程)

  • 这些教程帮助我对内容提供商有了深入的了解,我不再害怕它们了!:)希望它们也能帮助你

    另外,在您使用内容提供商之后,您可能会希望使用加载器将数据从内容提供商加载到您的UI中。这一点非常好