内容提供商在多个应用中的主要用途是什么?

时间:2015-04-01 05:31:37

标签: android android-contentprovider

我一直在阅读内容提供商一段时间,我已经看到了两种类型,一种是建立用于例如联系人(我理解),另一种是通过content:// thing创建我们自己的内容提供商。我所经历的大多数例子都是在一个应用程序中完成的。我的意思是使用内容提供商的重点是,如果我将数据存储在一个应用程序中并按照定义检索它,它会在应用程序之间共享数据吗?

我正在寻找它,因为我做了两个项目,我在一个中使用了内容提供程序,并在数据库中存储了一些数据。然后我制作其他项目并通过内容获取存储的数据:// uri。这是什么是内容提供商的主要功能?这件事有可能吗?如果是这样的话? 我一直在问清楚我的基本知识。

3 个答案:

答案 0 :(得分:1)

我相信您正在寻找有关内容解析器的信息。正如其他人所指出的,提供商仅用于分享您的应用数据。当您想要访问它时,即使在另一个应用程序中,您也可以使用内容解析程序将命令发送到其他应用程序的内容提供程序; insert(),update(),delete()和query()。

您所谈论的内容:// URI,这是您在内容提供商中寻找的数据名称的标识符。该链接解释了提供商,解析器,合同,URI以及如何创建它们。

http://www.grokkingandroid.com/android-tutorial-writing-your-own-content-provider/

答案 1 :(得分:0)

内容提供商允许您将内容集中在一个位置,并让许多不同的应用程序根据需要访问它。内容提供程序的行为非常类似于数据库,您可以使用该数据库查询,编辑其内容,以及使用insert(),update(),delete()和query()方法添加或删除内容。在大多数情况下,此数据存储在SQlite数据库中。

  

我正在寻找它,因为我制作了两个项目并且我使用了内容提供商   一,并将一些数据存储在数据库中。然后我做了其他项目并获得   通过content:// uri存储数据。这是主要的   内容提供商的功能?

我认为你正在寻找这个: http://www.vogella.com/tutorials/AndroidSQLite/article.html

答案 2 :(得分:0)

要了解内容提供商,首先需要了解Android架构。所有Android应用程序都在自己的 VM(虚拟机)中运行,这意味着当您运行应用程序'A'并存储一些文件或在其中创建数据库时,现在运行时app 'B'并在其中创建数据库。

这两个应用程序“A”和“B”彼此不了解,或者用简单的词语表示它们之间不共享数据。要使数据可访问,一个应用程序必须共享其数据,以便其他人可以访问它。那就是ContentProvider进来的地方。

通过内容提供商,任何应用都可以将其数据公开给其他有兴趣接受它的应用。

一个例子是您的联系人列表。您可以通过内容提供商访问联系人列表,虽然它不是由您创建并由Android自己创建,但它可以与您共享数据,您可以通过内容提供商访问它。