publicclassMyProvider extendsContentProvider{
DBlite dBlite;
SQLiteDatabase db;
privatestaticfinalUriMatcher sMatcher;
static{
sMatcher =
newUriMatcher(UriMatcher.NO_MATCH);
sMatcher.addURI(RuiXin.AUTOHORITY,RuiXin.TNAME, RuiXin.ITEM);
sMatcher.addURI(RuiXin.AUTOHORITY, RuiXin.TNAME+"/#", RuiXin.ITEM_ID);
}
@Override
publicintdelete(Uri uri, String selection, String[] selectionArgs) {
db = dBlite.getWritableDatabase();
intcount = 0;
switch(sMatcher.match(uri)) {
caseRuiXin.ITEM:
count = db.delete(RuiXin.TNAME,selection, selectionArgs);
break;
caseRuiXin.ITEM_ID:
String id = uri.getPathSegments().get(1);
count = db.delete(RuiXin.TID, RuiXin.TID+"="+id+(!TextUtils.isEmpty(RuiXin.TID="?")?"AND("+selection+')':""), selectionArgs);
break;
default:
thrownewIllegalArgumentException("Unknown URI"+uri);
}
getContext().getContentResolver().notifyChange(uri, null);
returncount;
}
@Override
publicString getType(Uri uri) {
switch(sMatcher.match(uri)) {
caseRuiXin.ITEM:
returnRuiXin.CONTENT_TYPE;
caseRuiXin.ITEM_ID:
returnRuiXin.CONTENT_ITEM_TYPE;
default:
thrownewIllegalArgumentException("Unknown URI"+uri);
}
}
@Override
publicUri insert(Uri uri, ContentValues values) {
db = dBlite.getWritableDatabase();
longrowId;
if(sMatcher.match(uri)!=RuiXin.ITEM){
thrownewIllegalArgumentException("Unknown URI"+uri);
}
rowId = db.insert(RuiXin.TNAME,RuiXin.TID,values);
if(rowId>0){
Uri noteUri=ContentUris.withAppendedId(RuiXin.CONTENT_URI, rowId);
getContext().getContentResolver().notifyChange(noteUri, null);
returnnoteUri;
}
thrownewIllegalArgumentException("Unknown URI"+uri);
}
@Override
publicbooleanonCreate() {
this.dBlite = newDBlite(this.getContext());
returntrue;
}
@Override
publicCursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
db = dBlite.getWritableDatabase();
Cursor c;
Log.d("-------", String.valueOf(sMatcher.match(uri)));
switch(sMatcher.match(uri)) {
caseRuiXin.ITEM:
c = db.query(RuiXin.TNAME, projection, selection, selectionArgs, null, null, null);
break;
caseRuiXin.ITEM_ID:
String id = uri.getPathSegments().get(1);
c = db.query(RuiXin.TNAME, projection, RuiXin.TID+"="+id+(!TextUtils.isEmpty(selection)?"AND("+selection+')':""),selectionArgs, null, null, sortOrder);
break;
default:
Log.d("!!!!!!", "Unknown URI"+uri);
thrownewIllegalArgumentException("Unknown URI"+uri);
}
c.setNotificationUri(getContext().getContentResolver(), uri);
returnc;
}
@Override
publicintupdate(Uri uri, ContentValues values, String selection,
String[] selectionArgs) {
return0;
}
}