UriMatcher是一个工具类,主要是用于contentProvider中用于匹配URIS。


UriMatcher实际上相当于一棵树,实例化的UriMatcher对象,相当于树的根节点。


UriMatcher的实例化,

UriMatcher matcher=newUriMatcher(UriMatcher.NO_MACTHER);

UriMatcher.NO_MACTHER是一个常量,如果不匹配就返回-1.


void addURI( Stringauthority, Stringpath, int code)
addURI是添加一个uri,如果这个URi匹配则返回匹配码,不匹配则返回-1.

int match( Uriuri)
从以创建的uri树中去匹配传进来的uri,如果匹配成功,则返回匹配码,否则-1.


下面通过代码去创建一棵树(只有两个节点,文档上的比较多)

public static final int PERSON = 1;//状态码
public static final int NUMBER = 2;

matcher = new UriMatcher(UriMatcher.NO_MATCH);
matcher.addURI("com.example.sqlite", "person", PERSON);
matcher.addURI("com.example.sqlite", "person/#", NUMBER);//#代表任意数字


匹配uri


int code = matcher.match(uri);


SQLiteDatabase data=db.getWritableDatabase();
switch (code) {
case PERSON:


data.delete("person",selection,selectionArgs);
getContext().getContentResolver().notifyChange(uri, null);
break;


case NUMBER:


int id=(int) ContentUris.parseId(uri);
selection=(selection==null)?"id="+id:selection+"and id="+id;
data.delete("person", selection, selectionArgs);
getContext().getContentResolver().notifyChange(uri, null);
break;


default:
break;
}



更多相关文章

  1. Android开发中一种两次点击返回键退出应用的方法
  2. Android任务和返回栈完全解析
  3. android 是怎样画视图的
  4. android之自定义渐变颜色(一)
  5. Android(安卓)辅助功能服务AccessibilityService
  6. 自己实现的android树控件,android TreeView
  7. Android(安卓)Layout标签之 - viewStub,requestFocus,merge,include
  8. Android—启动内置APK和动态发送接收自定义广播
  9. Android混合开发(一)——移动端与前端交互之JSBridge引入

随机推荐

  1. QT5.2 Android(安卓)App中使用QML文件
  2. 【Android(安卓)开发教程】编码实现获取
  3. Android下使用TelephonyManager类获取设
  4. android使用Tab效果滑动
  5. 插曲1-项目开始前夕【我的第一次云项目连
  6. Android中如何保存cookie
  7. 新浪微博Android客户端学习记录三:完成登
  8. android 设置默认语言 多语言切换
  9. Android系统初始化过程分析(Android(安卓)
  10. Android(安卓)多线程保证操作同步(同步锁