初学ContentProvider的几个问题
public Uri insert(Uri uri, ContentValues values) { switch(MATCHER.match(uri)) { case TB: ContentValues v2 = new ContentValues(values); // 判断是否存在该值 if(!v2.containsKey(table.KEY_NAME)) { values.put(table.KEY_NAME, "def_name"); } if(!v2.containsKey(table.KEY_NUM)) { values.put(table.KEY_NUM, "def_num"); } SQLiteDatabase db = databaseHelper.getWritableDatabase(); // 返回行ID [color=#FF0000]红色的地方写的内容有什么限制为什么?[/color]-------------------------------------------- long rowId = db.insert(databaseHelper.DB_TABLE, [color=#FF0000]table.KEY_NAME[/color], values);-------------------------------------------- Log.e("cp", "rowid " + rowId); if(rowId > 0) { // 生成一个URI content://d.m.dbname/tb/1 Uri noteUri = ContentUris.withAppendedId( Uri.parse("content://" + table.AUTHORITY + "/tb"), rowId); getContext().getContentResolver().notifyChange(noteUri, null); return noteUri; } break; } return null; } @Override public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { SQLiteQueryBuilder qb = new SQLiteQueryBuilder(); switch(MATCHER.match(uri)) { case TB: qb.setTables(DatabaseHelper.DB_TABLE); qb.setProjectionMap(projectMap); break; case TB_ID: break; } SQLiteDatabase db = databaseHelper.getReadableDatabase(); Cursor c = qb.query(db, projection, selection, selectionArgs, null, null, sortOrder);--------------------------------------------//这句的作用是什么? [color=#FF0000]c.setNotificationUri(getContext().getContentResolver(), uri);[/color]-------------------------------------------- return c; }