使用Android Content解析器查询与Sqlite数据库连接之间的区别?

问题描述 投票:1回答:2

我怀疑内容解析器如何工作,它隐式使用sqlite数据库连接进行查询还是如何工作,在Android中使用内容解析器和sqlite数据库连接进行查询的主要区别是什么?

android android-contentprovider
2个回答
2
投票
[ContentResolver用于选择特定的ContentProvider

Content Resolver提供了来自应用程序的内容提供者的抽象,Content Providers提供了来自基础数据源(即SQLite数据库)的抽象。

ContentResolver-> ContentProvider-> SQLiteDatabase

我发现了一些有关Content Resolvers & Content Providers here的恰当解释。值得一读。希望这有助于更多地了解

Content Resolvers&Content Providers


1
投票
Contentprovider / Contentresolver使用类似于sql-dabase的模型:

    投影:您有感兴趣的列(在sql中,选择col1,col2,...。)
  • 选择或过滤器:查找/过滤行(在SQL WHERE表达式中)
  • Contentprovider可以使用sqLite数据库轻松实现。

    但是Contentprovider也可以在没有任何数据库的情况下实现。

      示例:媒体内容提供者(照片,视频和音频文件)是通过sqLight数据库实现的
  • 示例:文件(内部存储器或sdcard,usbstick,云中...)的DocumentFile contentprovider不能通过数据库实现,但可以像其他contentresolver一样进行查询。
  • *
  • 何时使用Contentproviders而不是使用原始数据库?

      如果您想与其他应用程序共享数据(例如,电话簿内容提供者)
  • [至关重要的是,一个应用程序可以控制其他应用程序可以做什么。范例:由于android-7.0对SD卡上文件的访问受到限制,以使实施恶意软件更加困难。其他应用程序可以使用DocumentFile-provider / resolver
  • © www.soinside.com 2019 - 2024. All rights reserved.