上一篇我们说了我内容提供者的创建。这篇我们主要说下内容提供中的使用方法。

要使用内容提供者,我们需要借助于内容提供者的一个工具类ContentResolver。ContentResolver里面的增删改查的方法就是调用内容提供中的方法。

创建ContentProvider中的增删改查的方法里面的参数。我们没有介绍,首先介绍下这些方法里里面的参数。

我们看上一篇的代码中,不难看出,在每个方法中,都有一个参数,那就是Uri。什么是Uri?

Uri分为三部分。用个例子来说明下。

content://com.51cto.blog.bingtianxuedi/person/1

content://  是Android为我们提供访问内容提供者的scheme.是一种规定,不可修改。

com.51cto.blog.bingtianxuedi/ 我们c创建ContentProvider,在AndroidManifest.xml配置的authorities 

person/1 路径,根据业务而定。假如我们查询的是数据库,就表示person表下的id为1的那条记录。假如我们查询的是xml文件下的person节点下的name节点,可写成person/name。

知道了是什么是uri下面的参数就很好理解了。

ContentValues是什么呢?

它就像一个Map集合,为我们提供了put方法和get方法,key存放的是字段名,value就是我们要插入或者修改的值。

 
  
  1. //增 
  2. public Uri insert(Uri uri, ContentValues values) 
  3. //删 
  4. public int delete(Uri uri, String selection, String[] selectionArgs) 
  5. //selection 要查询条件的,相当于SQLite数据库查询语句中的where后面的内容.name = ?
  6. //delete from person where name=?
  7. //selectionArgs 就对应查询条件占位符的值。替代问号的值
     
  8. //改 
  9. public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) 
  10. //查 
  11. public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, 
  12. String sortOrder) 
  13. //sortOrder 排序,对应sql语句后order by 后面的部分
     


知道了上面每个参数的含义,我们就可以使用内容提供者了,这要创建ContentResolver对象就可以操作内容提供者了。

ContentResolber可以通过Context.getContentResolver()得到。