ContentProvider介绍

一、概述
 Android提供了ContentProvider组件,可以将一个应用的数据提供给另一个应用使用

二、使用先创建继承ContentProvider的类

 1 public class DemoProvider extends ContentProvider{
 2     
 3     //Uri路径匹配,没有返回-1
 4     public static final UriMatcher matcher = new UriMatcher(UriMatcher.NO_MATCH);
 5     public static final int CODE = 1;
 6 
 7     static{
 8         //创建匹配规则 authorities(主机名)、路径、编码(匹配成功返回值)
 9         //路径后可增加数字(用"#"表示)
10         //Uri:"com.demo.DemoContentProvider/path/#"
11         matcher.addURI("com.demo.DemoContentProvider","path",CODE);
12     }
13 
14     @Override
15     public boolen onCreate(){
16         return false;
17     }
18     
19     //Uri、查询的列、条件、条件对应参数、排序
20     @Override
21     public String query(Uri uri,String[] projection,String selection,
22         String[] selectionArgs,String sortOrder){
23         int back = matcher.match(uri);
24         //返回值相同
25         if(back == CODE){
26             //这里进行查询操作
27             //若要去path中数字使用long id = ContentUris.parseId(uri);
28             //略...
29         }
30         return null;    
31     }
32 
33     @Override
34     public String getType(Uri uri){
35         return null;
36     }
37 
38     @Override
39     public Uri insert(Uri uri,ContentValues values){
40         return null;
41     }
42 
43     @Override
44     public int delete(Uri uri,String selection,String[] selectionArgs){
45         return 0;
46     }
47 
48     @Override
49     public int update(Uri uri,ContentValues values,String selection,
50         String[] selectionArgs){
51         return 0;    
52     }
53 }

三、清单文件中配置

1 <!--authorities译为官方,这里表示一个标识Uri-->
2     <provider 
3         android:name=".DemoContentProvider"
4         android:authorities="com.demo.DemoContentProvider"
5         />

四、另一个应用中调用

1     //使用内容解析者
2     //内容解析者使用内容提供者查找对应Uri,然后将数据返回
3     ContenResolver resolver = getContentResolver() ;
4     Uri uri = Uri.parse("content://com.demo.DemoContentProvider/path");
5     Cursor cursor = resolver.query(uri,null,null,null,null);

 

posted @ 2013-04-02 20:42  轻云沉峰  阅读(194)  评论(0编辑  收藏  举报