四大组件之------------内容提供者ContentProvider
2013-01-25 13:31
525 查看
1.内容提供者(ContentProvider)
作用:应用程序中的数据对外进行共享,外界可以对该应用进行增删改查。如:通讯录
内容提供者的创建:
<1>.必须在应用程序的根包中创建一个类,该类继承ContentProvider
<2>配置AndroidManifest.xml文件,在应用节点下增加Provider节点
Name:类名 Authorities:唯一标识,表示内容提供者的唯一性
2.内容提供者用到的工具:
UriMatcher类:对路径进行判断。
UriMatcher MATCHER=new UriMatcher(UriMatcher.NO_MATCH);
常用方法:
UriMatcher.match(Uri)判断是否合法。
UriMatcher.addURI(“”)增加合法的路径。
ContentUris类:对路径进行修改。(静态类)
对路径中的参数进行提取:ContentUris.parseID(Uri)
增加字段:ContentUris.withAppendedId(uri, pid);
3.对某个接口内容提供者对外进行更新通知:
This.getContext().getContentResolver().notifyChange(uri,null)
4.使用内容提供者的方法:
<1>.构造路径<2>取得ContentResolver对象<3>调用Resolver的方法进行访问
Uri uri=Uri.parse("content://com.example.providers.personprovider/person");
ContentResolver Resolver=this.getContext().getContentResolver();
Resolver.insert(uri,values);
5.获得内容提供者的变化:
<1>构造路径,<2>取得ContentResolver对象<3>调用ContentResolver的registerContentObserver(uri,true,new PersonContentObserver(new Handler()))方法注册变化通知
private class PersonContentObserver extends ContentObserver{
public PersonContentObserver(Handler handler) {
super(handler);
}
public void onChange(boolean selfChange) {//当得到通知后进行查询最新数据
Uri uri=Uri.parse("content://com.example.providers.personprovider/person/query");
//select * from person order by personid desc limit 1
ContentResolver resolver=MainActivity.this.getContentResolver();
Cursor cursor=resolver.query(uri, null, null, null, "personid desc limit 1");
if(cursor.moveToFirst()){
Log.i("PersonContent", cursor.getString(cursor.getColumnIndex("name")));
}
else
Log.i("PersonContent", "错误");
}
}
作用:应用程序中的数据对外进行共享,外界可以对该应用进行增删改查。如:通讯录
内容提供者的创建:
<1>.必须在应用程序的根包中创建一个类,该类继承ContentProvider
<2>配置AndroidManifest.xml文件,在应用节点下增加Provider节点
Name:类名 Authorities:唯一标识,表示内容提供者的唯一性
2.内容提供者用到的工具:
UriMatcher类:对路径进行判断。
UriMatcher MATCHER=new UriMatcher(UriMatcher.NO_MATCH);
常用方法:
UriMatcher.match(Uri)判断是否合法。
UriMatcher.addURI(“”)增加合法的路径。
ContentUris类:对路径进行修改。(静态类)
对路径中的参数进行提取:ContentUris.parseID(Uri)
增加字段:ContentUris.withAppendedId(uri, pid);
3.对某个接口内容提供者对外进行更新通知:
This.getContext().getContentResolver().notifyChange(uri,null)
4.使用内容提供者的方法:
<1>.构造路径<2>取得ContentResolver对象<3>调用Resolver的方法进行访问
Uri uri=Uri.parse("content://com.example.providers.personprovider/person");
ContentResolver Resolver=this.getContext().getContentResolver();
Resolver.insert(uri,values);
5.获得内容提供者的变化:
<1>构造路径,<2>取得ContentResolver对象<3>调用ContentResolver的registerContentObserver(uri,true,new PersonContentObserver(new Handler()))方法注册变化通知
private class PersonContentObserver extends ContentObserver{
public PersonContentObserver(Handler handler) {
super(handler);
}
public void onChange(boolean selfChange) {//当得到通知后进行查询最新数据
Uri uri=Uri.parse("content://com.example.providers.personprovider/person/query");
//select * from person order by personid desc limit 1
ContentResolver resolver=MainActivity.this.getContentResolver();
Cursor cursor=resolver.query(uri, null, null, null, "personid desc limit 1");
if(cursor.moveToFirst()){
Log.i("PersonContent", cursor.getString(cursor.getColumnIndex("name")));
}
else
Log.i("PersonContent", "错误");
}
}
相关文章推荐
- Android之四大组件之一-ContentProvider内容提供者的使用(二)
- Android 四大组件之一 :ContentProvider内容提供者从入门到精通
- 四大组件之内容提供者ContentProvider
- Android四大组件之ContentProvider(内容提供者)02
- Android四大组件之一ContentProvider内容提供者(继SQLite数据存储篇)
- 安卓四大组件之一ContentProvider内容提供者
- Android四大组件之内容提供者ContentProvider
- 四大组件之内容提供者——ContentProvider
- Android四大组件之一ContentProvider(内容提供者)
- Android四大组件之一之内容提供者ContentProvider
- Android基础之四大组件-ContentProvider(内容提供者)
- 数据存储详解(四)及四大组件之一 之--->ContentProvider(内容提供者)
- android四大组件之一内容提供者contentprovider
- Android四大组件之ContentProvider(内容提供者)01
- Android四大组件之ContentProvider(内容提供者)
- Android四大组件之Content Provider(内容提供者)
- Android四大组件之内容提供者--ContentProvider
- android四大组件之内容提供者(ContentProvider)
- Android组件之ContentProvider(内容提供者)
- 浅析Android四大组件之一:ContentProvider 内容提供者 源码