内容提供器
一般有两种,一种是使用现有的内容提供器,读取和操作相应程序的数据,另一种是创建自己的内容提供器给其他程序提供数据。
ContentResolver基本用法
借助ContentResolver访问其他程序数据,ContentResolver提供了insert(), delete(), query()和update()对内容提供器的数据进行增删查改,使用一个Uri参数定位数据,内容提供器使用内容URI为数据建立标识符。包括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);
创建内容提供器
ublic class MyProvider extends ContentProvider{
//内容提供器初始化时调用,在这里完成对数据库的创建和升级操作,只有当
//ContentResolver尝试访问数据时才会初始化。
@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;
}
}