android之ContentResolver与ContentProvider介绍

2019-12-10 19:16:18于丽
易采站长站为您分析android之ContentResolver与ContentProvider介绍,需要的朋友可以参考下  

android中对数据操作包含有: 
file, sqlite3, Preferences, ContectResolver与ContentProvider前三种数据操作方式都只是针对本应用内数据,程序不能通过这三种方法去操作别的应用内的数据。 
android中提供ContectResolver与ContentProvider来操作别的应用程序的数据。

一、 使用方式

一个应用实现ContentProvider来提供内容给别的应用来操作, 
一个应用通过ContentResolver来操作别的应用数据,当然在自己的应用中也可以。

1. ContentResolver的获取

通过Context类: 
  

复制代码
public abstract ContentResolver getContentResolver();  
   
2. ContentResolver常用操作

 

 

复制代码
//查询:   
public final Cursor query(Uri uri, String[] projection,   
           String selection, String[] selectionArgs, String sortOrder);   
//新增   
public final Uri insert(Uri url, ContentValues values)       
//更新   
public final int update(Uri uri, ContentValues values, String where,   
             String[] selectionArgs)   
//删除   
public final int delete(Uri url, String where, String[] selectionArgs)   

 

 以上操作实际是通过Uri来匹配ContentProvider, 再由ContentProvider来进行具体操作的。 
       操作的参数和操作sqlite各函数的参数意义是一样的。 
       
二、实现ContentProvider提供给外界访问 
调用者ContentResoler是通过一个Uri来找到相应的ContentProvider的来进行实际操作。 
     1. Uri概念 
        一个Uri的样子如:

 

复制代码
scheme://authorities/path/id  

 

       如电话记录: