今天继续讲android Contact ContentProvider,讲同步适配器。
以下是android developer官方讲解:
来自同步适配器的数据
虽然用户是直接将联系人数据输入到设备中,但这些数据也会通过同步适配器从网络服务流入联系人提供程序中,这些同步适配器可自动化设备与服务之间的数据传送。 同步适配器在系统控制下在后台运行,它们会调用 ContentResolver 方法来管理数据。
在 Android 中,与同步适配器协作的网络服务通过帐户类型加以标识。 每个同步适配器都与一个帐户类型协作,但它可以支持该类型的多个帐户名称。 原始联系人数据来源部分对帐户类型和帐户名称做了简要描述。 下列定义提供了更多详细信息,并描述了帐户类型及帐户名称与同步适配器及服务之间的关系。
帐户类型
表示用户在其中存储数据的服务。在大多数时候,用户需要向服务验证身份。 例如,Google 通讯录是一个以代码 google.com 标识的帐户类型。 该值对应于 AccountManager 使用的帐户类型。
帐户名称
表示某个帐户类型的特定帐户或登录名。Google 通讯录帐户与 Google 帐户相同,都是以电子邮件地址作为帐户名称。 其他服务可能使用一个单词的用户名或数字 ID。
帐户类型不必具有唯一性。用户可以配置多个 Google 通讯录帐户并将它们的数据下载到联系人提供程序;如果用户为个人帐户名称和工作帐户名称分别设置了一组联系人,就可能发生这种情况。 帐户名称通常具有唯一性。 它们共同标识联系人提供程序与外部服务之间的特定数据流。
如果您想将服务的数据传送到联系人提供程序,则需编写您自己的同步适配器。 联系人提供程序同步适配器部分对此做了更详尽的描述。
图 4 显示的是联系人提供程序如何融入联系人数据的流动。 在名为“同步适配器”的方框中,每个适配器都以其帐户类型命名。
图 4. 联系人提供程序数据流。