一般有兩種宗弯,一種是使用現(xiàn)有的內容提供器嘿棘,讀取和操作相應程序的數(shù)據(jù)汤求,另一種是創(chuàng)建自己的內容提供器給其他程序提供數(shù)據(jù)。
ContentResolver基本用法
借助ContentResolver訪問其他程序數(shù)據(jù)鳍徽,ContentResolver提供了insert(), delete(), query()和update()對內容提供器的數(shù)據(jù)進行增刪查改资锰,使用一個Uri參數(shù)定位數(shù)據(jù),內容提供器使用內容URI為數(shù)據(jù)建立標識符阶祭。包括authority和path兩部分绷杜。
Uri uri = Uri.parse("content://com.example.app.provider/table1");
ContentResolver contentResolver = getContentResolver();
ContentValues mContentValues = new ContentValues();
mContentValues.put("name",22);
mContentValues.put("price",30);
contentResolver.insert(uri,mContentValues);
創(chuàng)建內容提供器
ublic class MyProvider extends ContentProvider{
//內容提供器初始化時調用,在這里完成對數(shù)據(jù)庫的創(chuàng)建和升級操作濒募,只有當
//ContentResolver嘗試訪問數(shù)據(jù)時才會初始化鞭盟。
@Override
public boolean onCreate() {
return false;
}
@Nullable
@Override
public Cursor query(@NonNull Uri uri, @Nullable String[] projection, @Nullable String selection,
@Nullable String[] selectionArgs, @Nullable String sortOrder) {
return null;
}
@Nullable
@Override
public String getType(@NonNull Uri uri) {
return null;
}
@Nullable
@Override
public Uri insert(@NonNull Uri uri, @Nullable ContentValues values) {
return null;
}
@Override
public int delete(@NonNull Uri uri, @Nullable String selection,
@Nullable String[] selectionArgs) {
return 0;
}
@Override
public int update(@NonNull Uri uri, @Nullable ContentValues values, @Nullable String selection,
@Nullable String[] selectionArgs) {
return 0;
}
}