Android NDK开发详解Content Resolver之简介

Android NDK开发详解Content Resolver之简介

内容提供程序有助于应用管理其自身和其他应用所存储数据的访问,并提供与其他应用共享数据的方法。它们会封装数据,并提供用于定义数据安全性的机制。内容提供程序是一种标准接口,可将一个进程中的数据与另一个进程中运行的代码进行连。实现内容提供程序大有好处。最重要的是,通过配置内容提供程序,您可以使其他应用安全地访问和修改您的应用数据(如图 1 所示)。
内容提供程序如何管理存储空间访问的概览图。

在这里插入图片描述

图 1. 内容提供程序如何管理存储空间访问的概览图。

如果您计划共享数据,则可使用内容提供程序。如果您不打算共享数据,也可使用内容提供程序,因为它们可以提供很好的抽象,但无需如此。此抽象可让您修改应用数据存储实现,同时不会影响依赖数据访问的其他现有应用。在此情况下,受影响的只有您的内容提供程序,而非访问该提供程序的应用。例如,您可以将 SQLite 数据库换成其他存储空间(如图 2 所示)。
迁移内容提供程序存储空间的示意图。

在这里插入图片描述

图 2. 迁移内容提供程序存储空间的图示意图。

许多其他类依赖于 ContentProvider 类:

AbstractThreadedSyncAdapter
CursorAdapter
CursorLoader

如果您正在使用以上某个类,则还需在应用中实现内容提供程序。请注意,使用同步适配器框架时,您还可使用另一种方案:创建存根内容提供程序。如需了解有关此主题的更多信息,请参阅创建存根内容提供程序。此外,在下列情况下,您需要自定义内容提供程序:

您希望在自己的应用中实现自定义搜索建议
您需要使用内容提供程序向微件公开应用数据
您希望将自己应用内的复杂数据或文件复制并粘贴到其他应用中

Android 框架内的某些内容提供程序可管理音频、视频、图像和个人联系信息等数据。android.provider 软件包参考文档中列出了其中的部分提供程序。虽然存在一些限制,但任何 Android 应用均可访问这些提供程序。

内容提供程序可用于管理对各种数据存储源的访问,包括结构化数据(如 SQLite 关系型数据库)和非结构化数据(如图像文件)。如需了解 Android 可用存储类型的详细信息,请参阅存储选项和设计数据存储。
内容提供程序的优点

内容提供程序可精细控制数据访问权限。您可以选择仅在应用内限制对内容提供程序的访问,授予访问其他应用数据的权限,或配置读取和写入数据的不同权限。如需了解有关安全使用内容提供程序的更多信息,请参阅存储数据的安全提示与内容提供程序权限。

您可以使用内容提供程序将细节抽象化,以用于访问应用中的不同数据源。例如,您的应用可能会在 SQLite 数据库中存储结构化记录,以及视频和音频文件。如果您在应用中实现此开发模式,则可使用内容提供程序访问所有这类数据。

另请注意,CursorLoader 对象依赖于内容提供程序来运行异步查询,进而将结果返回至应用的界面层。如需了解有关使用 CursorLoader 在后台加载数据的更多信息,请参阅使用 CursorLoader 运行查询。

以下主题详细描述了内容提供程序:

内容提供程序基础知识
如何使用现有内容提供程序访问和更新数据。
创建内容提供程序
如何设计并实现自己的内容提供程序。
日历提供程序
如何访问 Android 平台的日历提供程序。
联系人提供程序
如何访问 Android 平台的联系人提供程序。

如需了解与此页面相关的示例代码,请参阅基本同步适配器示例应用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五一编程

程序之路有我与你同行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值