自定义Content Provider(内容提供器)

来源:互联网 发布:淘宝客引流文案 编辑:程序博客网 时间:2024/05/16 07:44

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>
0 0
原创粉丝点击