天天看点

ContentProvide

ContentProvide: 是android的四大组件之一。

*、新建类,继承contentProvider类,注册contentProvider

*、在onCreate方法中获得SQLiteDatabase的对象,关联数据库。

*、在对应方法里实现数据库的相关操作。

*、注册ContentProvider , authorities=”URL” exported=”true”

ContentResolver:

*、创建一个ContentResolver类,用getContentResolver得到。

*、不同程序之间共享数据,访问数据。
  *、为数据存储访问提供一个统一接口
 *、使用ContentProvider提供的功能完成添加insert、删除delete、查询query、更新updata
  他有两个功能:*、向外共享数据的应用负责ContentProvider的实现,并用给出的URI作                 为标记
                *、获取其他应用共享的数据,通过ContentResolver,并指定URI来操作数据
           

系统内置了provider,为我们提供了获取数据的接口,可以使用ContentResolver来访问和操作数据,通过URL来相互识别。

*、url为统一资源标识。
 *、每个ContentProvider都拥有一个公共的URL,这个URL代表其共享的数据。
           

*、contentProvider的使用:调用系统使用ContentResolver

1、获取ContentProvider,

得到一个ContentResolve的实例

ContentResolver content=Context.getContextResolver();

2、对一个ContentProvider的实例进行操作:查询、添加、修改、删除

Cursor ContentResolver.query(uri,

projection查询那几列,

selection查询条件, selectionArgs补充, sortOrder排序条件);

eg:

//声明一个ContentResolver常亮,用于操作。

ContentResolver resolver = getContentResolver();

//查询得到的列名

String [] projection = {Profile._ID,Profile.DISPLAY_NAME};

//错做Resolver得到Cursor集合,类似数据库查询结果

Cursor cursor = resolver.query(Contact.CONTENT, projection, selection,

selectionArgs, sortOrder);

*、自定义ContentProvider:

自定义公共数据库、用于多个应用相互访问、

ContentProvider:为了实现不同应用之间实现数据交换,

当一个应用程序需要把自己的数据暴露给其他程序使用时,该应用可以通过提供

ContentProvider来实现,其他应用程序通过ContentResolver来操作他暴露的数据。

数据共享标准:

ContentProvider以一种Uri的形式来提供数据,其他应用使用ContentResolver根据

Uri去访问操作指定的数据。

开发步骤:

1、定义自己的ContentProvider类,继承Android的ContentProvider基类。

2、向AndroidManifest.xml文件中注册这个ContentProvider,就行注册activity

注册ContentProvider需要一个Uri,

继续阅读