【问题标题】:What is the main use of Content Providers in multiple apps多个app中Content Providers的主要用途是什么
【发布时间】:2015-07-23 22:55:51
【问题描述】:

我已经阅读内容提供者有一段时间了,我已经看到了两种类型,一种是内置的,例如联系人(我理解),另一种是通过 content:// 事物制作我们自己的内容提供者。好吧,我经历过的大多数示例都是在一个应用程序中完成的。我的意思是,如果我将数据存储在一个应用程序中并以与定义相同的方式在应用程序之间共享数据的方式检索数据,那么使用内容提供程序有什么意义呢?

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

【问题讨论】:

标签: android android-contentprovider


【解决方案1】:

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

这两个应用程序“A”和“B”彼此不认识,或者简单地说,它们之间不共享数据。为了使数据可访问,一个应用程序必须共享其数据,以便其他应用程序可以访问它。这就是ContentProvider 的用武之地。

通过内容提供商,任何应用都可以将其数据暴露给其他有兴趣获取数据的应用。

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

【讨论】:

  • 是的,我明白了,我想知道当我创建自己的内容提供程序时它是如何在两个应用程序之间共享的(在我的情况下,两个应用程序意味着两个项目是分开的)各种权限都需要和一切
【解决方案2】:

我相信您正在寻找有关内容解析器的信息。正如其他人指出的那样,Provider 仅用于共享您的应用程序的数据。当你想访问它时,即使在另一个应用程序中,你也可以使用 Content Resolver 向另一个应用程序的 Content Provider 发送命令; insert()、update()、delete() 和 query()。

您所说的 content://URI 是您在 Content Provider 中查找的数据名称的标识符。该链接解释了提供者、解析器、合同、URI 以及如何创建它们。

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

【讨论】:

    【解决方案3】:

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

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-31
    • 2010-10-17
    • 2020-06-25
    • 1970-01-01
    • 2011-11-09
    • 2016-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多