这个主题主要介绍以下基础内容:

1. 内容提供器是如何工作的;

2. 使用API从内容提供器中获取数据;

3. 使用API来插入、更新、删除内容提供器中的数据;

4. 与提供器协同工作的其他API功能。

 

概述

内容提供器用类似关系数据库表的形式用一个或多个表给外部应用程序呈现数据。一行代表了提供器收集的某些数据类型的一个实例,并且每行中每一列代表了一个实例的单独的数据收集片段。

例如,用户字典是Android平台 中内置的提供器之一,它存储了用户想要保持的非标准单词的拼写。表1说明了在这个提供器的表中可能有的数据。

表1.用户字典表示例

word

app id

frequency

locale

_ID

mapreduce

user1

100

en_US

1

precompiler

user14

200

fr_FR

2

applet

user2

225

fr_CA

3

const

user1

255

pt_BR

4

int

user5

100

en_UK

5

 在表1中,每一行代表了一个在标准字典里不可能找到的单词的实例。每一列代表了那个单词的一些数据,如locale列,列头是保存在提供器中的列名。要引用一行的locale的值,就要指向这一行的locale列。对于这个提供器,_ID列是这个提供器自动维护的“主键”列。

注意:提供器不是必须得有一个主键,并且如果存在主键,也不必使用_ID作为列名。但是,如果你想要把来自提供器的数据绑定到一个ListView中,就得有有一个列名是_ID的列。这个需求会在“显示查询结果”一节中进行更详细的的解释。