我是新的android应用程序开发,并在学习基本的android组件时,我意图和内容提供者之间感到困惑,因为两者都被用于将数据从一个应用程序/组件发送到另一个应用程序/组件。在意图的情况下,我们可以使用捆绑或额外发送数据,为什么我们使用内容提供商。有人能用一个例子来解释我吗?
我们也可以只使用内容提供者访问android中的数据库,这是我们使用内容提供者的唯一原因吗?意图vs内容提供者在android
回答
两者都被用于从一个应用/组件将数据发送到另一应用/组件
不是真的。
有四个组件中的Android:
Activity
Service
BroadcastReceiver
ContentProvider
一个Intent
是无那些。 Intent
是涉及当我们开始一个活动,开始或绑定到一个服务,或发送广播。然而,比较Intent
与ContentProvider
类似于将铲与靴子进行比较,认为两者都可用于携带污物。虽然是真的,但通常一个启动是涉及携带污垢,但携带污垢的实际手段是由别的东西,如独轮车处理。
如果有意图,我们可以使用捆绑或附加功能发送数据,那么为什么我们要使用内容提供者。
我们经常针对不同的情况使用不同的工具。例如,你会发现在渔网中携带水很困难。
每个四个分量都具有不同的作用,特别是在关系到进程间通信(IPC):
一种
Activity
驱动散装我们的用户界面,包括启动从其他应用的活动(或有我们的活动之一,由其他应用程序启动)一个
Service
存在逻辑上从用户界面分离再运行的操作,包括由其他应用程序实现的服务工作(或有其他应用程序与服务合作您发布)一个
BroadcastReceiver
是一个发布/订阅消息系统,让你将消息发送到任意订户,或订阅来自任意发件人的邮件,跨进程边界一个
ContentProvider
是批量数据传输,无论是在一个数据库式结构的形式(行和列)或以流的形式,特别是用于与其他应用程序的工作
也可以我们访问数据库I n android只使用内容提供者
否。毕竟,如果这是真的,那么访问数据库将是不可能的。 A ContentProvider
不会出现魔法。它必须由程序员编写。如果ContentProvider
只能通过ContentProvider
访问数据库,那么我们会遇到问题。
这就是我们使用内容提供商的唯一原因吗?
否。除了提供数据库式API之外,ContentProvider
还可以发布流。这对于获取应用程序之间的任意数据非常重要,例如使PDF附件可用于PDF查看器的电子邮件客户端。
意图是用于发送/接收事务性命令和数据的消息体系结构。内容提供者是存储数据的抽象接口,用于创建,更新,删除和同步操作。
和数据库呢? –
数据库(例如,内置在sqllite数据库中的android)是数据的一种存储机制。内容提供者可以使用数据库,文件存储或其他存储机制。内容提供者接口允许您从应用程序或其他应用程序的其余部分抽象出该存储机制。 –
- 1. 内容提供者vs ORM
- 2. android内容提供者的使用者
- 3. 内容提供者
- 4. Android - 内容提供者查询光标
- 5. android内容提供者权限
- 6. android videoView java.io.filenotfoundexception没有内容提供者
- 7. android自定义内容提供者
- 8. 默认启动内容提供者Android
- 9. Android。内容提供者或数据库?
- 10. Android的内容提供者由Kotlin提供
- 11. android意图vs观察者
- 12. 如何解决在android内容提供者中找不到的内容提供者url?
- 13. Android内容提供者 - 在插入方法内更新
- 14. android:内容提供者:服务崩溃凝视 - 无法获取提供者sensordata.collector.SurveyDbProvider
- 15. Android内容提供者*不是*在Android中?
- 16. 使用意图的Android联系人内容提供商
- 17. 内容提供者和内容观察者示例?
- 18. 内容提供者和内容观察者同步
- 19. 存储在Android项目中的内容提供者在哪里?
- 20. Android内容提供商测试的真正内容提供商
- 21. Android数据访问设计模式:内容提供者vs存储库
- 22. android内容提供商
- 23. Android内容提供商
- 24. 如何在android内容提供者中存储大块?
- 25. Android - 尝试在内容提供者中添加值时失败
- 26. 在android中保护/限制内容提供者
- 27. 在Android API级别23上访问UserDictionary内容提供者
- 28. 在Android中查询现有内容提供者的DISTINCT记录
- 29. 在Android中使用group by和内容提供者计数
- 30. 如何在Android上查询UserDictionary内容提供者?
完美的解释,一行一行。非常感谢:) –
需要一点建议。我应该先学习什么,内容提供者或android数据库? –
@Shivamaggarwal:都不是。或者,更准确地说,想出一个真正的问题,然后学习你需要解决的问题。例如,如果您的问题涉及获取联系人数据,则需要了解如何使用“ContentProvider”,因为这是Android为您提供联系人数据的方式。 – CommonsWare