每个ContentProvider都有一个Uri,当对ContentProvider中的数据进行操作时,会通过对应Uri指定相关数据进行操作。如果一个ContentProvider含多个数据源,就需要对不同Uri进行区分。
初始化UriMatcher类
UriMatcher matcher = new UriMatcher(UriMatcher.NO_MATCH);
参数表示没匹配成功的匹配码,UriMatcher.NO_MATCH是一个值为-1的常量,也可用-1表示
注册需要的Uri
matcher.addUri(“cn.itcast.contprovider”,“people”,“1”);
matcher.addUri(“cn.itcast.contprovider”,“people/#”,“2”);
上述参数分别表示:Uri的authority部分;Uri的Path部分;Uri匹配成功后的返回码;#表示通配符
与已经注册的Uri匹配
Uri uri=new Uri(“content://cn.itcast.contentprovider/people”);
int match=matcher.match(uri);
switch(match){
case 1:
//匹配成功后相关操作
case 2:
//匹配成功后相关操作
default:
return null;
}