目录
10.数据存储技术(四)
4.使用Content Provider实现数据共享
Content Provider 主要用于在不同的应用程序之间实现数据共享。它提供了一套完整的机制, 允许一个程序访问另一个程序中的数据,同时还能保证被访问数据的安全性。
在Android程序中,共享数据的实现需要继承ContentProvider基类,该基类为其他应用程序使用和存储数据实现了一套标准方法,然而应用程序并不直接调用这些方法,而是使用一个ContentResolver对象去操作指定数据。
4-1.Content Provider概述
Content Provider内部如何保存数据由其设计者决定,但是所有的Content Provider都实现一组通用的方法,用来提供数据的增、删、改、查功能。
客户端通常不会直接使用这些方法,而是通过ContentResolver对象实现对Content Provider的操作。开发人员可以通过调用Activity或者其他应用程序组件的实现类中的getContentResolver()方法来获得ContentResolver对象,例如:
ContentResolver cr = getContentResolver();
使用ConentResover提供的方法可以获得Content Provider 中任何想要的数据。
当开始查询时,Android 系统确认查询的目标Conent Provider 并确保它正在运行。系统会初始化所有ContentProvider类的对象,开发人员不必完成此类操作,实际上,开发人员根本不会直接使用ContentProvider类的对象。通常,每个类型的Content Provider仅有一个单独的实例。但是该实例能与位于不同应用程序和进程的多个ContentResolver类的对象通信。不同进程之间的通信由ContentProvider类和ContentResolver类处理。
使用Content Provider时,通常会用到以下两个概念。
1.数据模型
Content Provider使用基于数据库模型的简单表格来提供其中的数据,这里每行代表一条记录, 每列代表特定类型和含义的数据。例如,联系人的信息可能以表10.2 所示的方式提供。
表1