需要实现的主要方法是:
-
「insert()」、「delete()」、「update()」、「query()」:用于对数据集的增删改查操作。
-
「onCreate()」:一般用来初始化底层数据集和建立数据连接等工作
-
「getType()」:用来返回指定Uri的MIME数据类型,
-
若Uri是单条数据,则返回的MIME数据类型以vnd.Android.cursor.item开头;
-
若Uri是多条数据,则返回的MIME数据类型以vnd.android.cursor.dir/开头。
数据访问方法**「如insert(Uri,ContentValues)和update(Uri,ContentValues,Bundle)」** 可以同时从多个线程调用,并且必须是线程安全的。其他方法**「如onCreate()」** 仅从应用程序主线程调用,并且必须避免执行冗长的操作。请参阅其预期线程行为的方法描述。
2、声明Uri规则,实现UriMatcher
咱先来看看UriMatcher是干嘛的,UriMatcher本质上是一个文本过滤器,有助于解析Uri,用在ContentProvider中帮助我们过滤,分辨出查询者想要查询哪个数据表。
UriMatcher的构造函数中,UriMatcher.NO_MATCH是Uri无匹配时的返回代码,值为-1。addUri()方法用来添加新的匹配项,语法为:
public void addUri(String authority, String path, int code)
-
authority表示匹配的授权者名称;
-
path表示数据路径;
-
code表示返回代码。
下面咱搞个实例:
//这里的名称必须与AndroidManifest.xml中android:authorities保持一致
public static final String AUTHORITY = “com.scc.userprovider”;
//数据路径
public static final String PATH_USE