gpt4 book ai didi

android - Android 中的 Intent 与 Content Provider

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:34:15 24 4
gpt4 key购买 nike

我是 android 应用程序开发的新手,在研究基本的 android 组件时,我对 intents 和 content provider 感到困惑,因为两者都被用来将数据从一个应用程序/组件发送到另一个应用程序/组件。如果有意向,我们可以使用 bundle 或 extras 发送数据,那么我们为什么要使用内容提供者。有人可以用一个例子向我解释一下吗?

我们也可以仅使用内容提供者访问 android 中的数据库,这是我们使用内容提供者的唯一原因吗?

最佳答案

both are being used to send data from one application/component to another application/component

不是真的。

Android 中有四个组件:

  • Activity
  • 服务
  • 广播接收器
  • ContentProvider

Intent 不是这些。 Intent 在我们启动 Activity 、启动或绑定(bind)到服务或发送广播时涉及。但是,将 IntentContentProvider 进行比较就像将铲子与 Boot 进行比较,认为两者都可以用来运土。虽然确实如此,但 Boot 通常参与携带灰尘,但携带灰尘的实际方式是由其他东西处理的,例如手推车。

In case of intents we can send data using bundle or extras so why do we use content providers.

我们经常针对不同的情况使用不同的工具。例如,您会发现用渔网提水相当困难。

四个组件中的每一个都有不同的作用,特别是在与进程间通信 (IPC) 的关系方面:

  • Activity 驱动我们大部分的用户界面,包括从其他应用启动 Activity(或让我们的一个 Activity 由其他应用启动)

  • 存在一个服务,用于在逻辑上与用户界面分离的长时间运行的操作,包括使用由其他应用程序实现的服务(或让其他应用程序使用您发布)

  • BroadcastReceiver 是一个发布/订阅消息传递系统,允许您跨进程边界向任意订阅者发送消息,或订阅来自任意发送者的消息

  • ContentProvider 用于批量数据传输,无论是以数据库样式结构(行和列)的形式还是以流的形式,特别是用于与其他应用程序一起使用

Also can we access database in android only using content provider

没有。毕竟,如果那是真的,就不可能访问数据库。 ContentProvider 不会凭空出现。它必须由程序员编写。如果 ContentProvider 只能通过 ContentProvider 访问数据库,我们就会遇到问题。

is this the sole reason why we use content providers ?

没有。除了提供数据库样式的 API 之外,ContentProvider 还可以发布流。这对于在应用程序之间获取任意数据很重要,例如电子邮件客户端向 PDF 查看器提供 PDF 附件。

关于android - Android 中的 Intent 与 Content Provider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31897520/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com