1、创建一个类继承ContentProvider,并重新他的方法
public class MyContentProvider extends ContentProvider {
public MyContentProvider() {
}
@Override
public boolean onCreate() {
//onCreate():初始化内容提供器的时候调用。通常会在这里完成对数据库的创建和升级等操作,返回 true 表示内容提供器初始化成功,返回 false 则表示失败。注意,只有当存在ContentResolver 尝试访问我们程序中的数据时,内容提供器才会被初始化。
return false;
}
@Override
public String getType(Uri uri) {
//getType()根据传入的内容 URI 来返回相应的 MIME 类型。
}
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
}
@Override
public Uri insert(Uri uri, ContentValues values) {
}
@Override
public Cursor query(Uri uri, String[] projection, String selection,String[] selectionArgs, String sortOrder) {
}
@Override
public int update(Uri uri, ContentValues values, String selection,String[] selectionArgs) {
}
}
2、 UriMatcher这个类实现匹配内容URI的功能
//在自定义内容提供者里添加静态方法
static UriMatcher uriMatcher;
static {
uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
//添加匹配项
uriMatcher.addURI(String authority, String path, int code)
}
//然后调用 UriMatcher 的 match()方法时,就可以将一个 Uri对象传入,返回值是某个能够匹配这个 Uri 对象所对应的自定义代码code.
//写在自定义提供者的操作类
switch (uriMatcher.match(uri)) {
case code:
break;
}
3、在清单文件里组成这个内容提供者
<provider
android:name=".MyContentProvider"
//一般包名加自定义
android:authorities="自定义的权限"
android:enabled="true"
android:exported="true" >
</provider>