ContentProvider和ContentResolver还有SQLiteDatabase的关系[摘录]

数据存取有三种方式:

1. contentprovider
2. database
3. preferrence

其中:
1. contentprovider是一个接口,可以与其他程序共享数据。其中数据访问部分可以采用访问database, preferrence, 或者存取自定义文件的方式来实现。 ContentResolver可以获取到对应的contentprovider,来控制数据。
2. database直接操作数据库,只限于当前程序。
3. preferrence操作xml文件,限于当前程序。

------------------------------

什么是SQLiteDatabase? 
一个SQLiteDatabase的实例代表了一个SQLite的数据库,通过SQLiteDatabase实例的一些方法,我们可以执行SQL语句,对数据库进行增、删、查、改的操作。需要注意的是,数据库对于一个应用来说是私有的,并且在一个应用当中,数据库的名字也是惟一的。
Content Provider:
一般是通过ContentResolver。你可以通过getContentResolver()从一个活动或其它应用程序组件的实现里获取一个ContentResolver:
查询一个内容提供器Querying a Content Provider
你需要三方面的信息来查询一个内容提供器:
•用来标识内容提供器的URI
•你想获取的数据字段的名字
•这些字段的数据类型
生成查询Making the query
你可以使用ContentResolver.query()方法或者Activity.managedQuery()方法来查询一个内容提供器。两种方法使用相同的参数序列,而且都返回一个Cursor对象
批量更新记录Batch updating records
要批量更新一组记录(例如,把所有字段中的"NY"改为"New York"),可以传以需要改变的列和值参数来调用ContentResolver.update()方法。
删除一个记录Deleting a record
要删除单个记录,可以传以一个特定行的URI参数来调用ContentResolver.delete()方法。
创建一个内容提供器Creating a Content Provider
要创建一个内容提供器,你必须:
•建立一个保存数据的系统。大多数内容提供器使用Android的文件储存方法或SQLite数据库来存放它们的数据,但是你可以用任何你想要的方式来存放数据。Android提供SQLiteOpenHelper类来帮助你创建一个数据库以及SQLiteDatabase类来管理它。
•扩展ContentProvider类来提供数据访问接口。