1.需在AndroidManifest配置文件下的application结点下配置如下信息:
<provider
android:name="com.wq.db.personprovider" //类的名字
android:authorities="com.wq.db.personprovider">
</provider>
2.写一个类继承ContentProvider
public class personprovider extends ContentProvider {
PersonOpenHelper helper;
// 定义一个uri的匹配器用于匹配uri,如果路径匹配不成功,则返回-1
private static final UriMatcher matcher = new UriMatcher(
UriMatcher.NO_MATCH);
private static final int INSERT = 1;
private static final int DELETE = 2;
private static final int UPDATE = 3;
private static final int QUERY = 4;
// 添加一组匹配规则
static {
matcher.addURI("com.wq.db.personprovider", "insert", INSERT);
matcher.addURI("com.wq.db.personprovider", "delete", DELETE);
matcher.addURI("com.wq.db.personprovider", "update", UPDATE);
matcher.addURI("com.wq.db.personprovider", "query", QUERY);
}
// http://www.baidu.com
// content://com.wq.db.personprovider/insert 添加操作
// content://com.wq.db.personprovider/delete 删除操作
// content://com.wq.db.personprovider/update 更改操作
// content://com.wq.db.personprovider/query 查询操作a
@Override
public boolean onCreate() {
helper = new PersonOpenHelper(getContext());
return false;
}
@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
if (matcher.match(uri) == QUERY) {
SQLiteDatabase db = helper.getReadableDatabase();
Cursor cursor = db.query("person", projection, selection,
selectionArgs, null, null, sortOrder);
return cursor;
} else {
throw new IllegalArgumentException("路径匹配不对,无法执行查询操作");
}
}
@Override
public String getType(Uri uri) {
// TODO Auto-generated method stub
return null;
}
@Override
public Uri insert(Uri uri, ContentValues values) {
// TODO Auto-generated method stub
return null;
}
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
// TODO Auto-generated method stub
return 0;
}
@Override
public int update(Uri uri, ContentValues values, String selection,
String[] selectionArgs) {
// TODO Auto-generated method stub
return 0;
}
}