zoukankan      html  css  js  c++  java
  • ContentProvider 共享数据

     
    onCreate 其它应用第一次访问时被调。

    insert 外部应用使用此方法添加数据。

    delete 外部应用使用此方法删除数据。

    update 外部应用使用此方法更新数据。

    query 外部应用使用此方法查询数据。

    getType 主要用于匹配数据类型(例如:接收系统广播时传递的数据类型),返回当前Uri所代表数据的MIME类型。如果操作的数据属于集合类型,那么MIME类型字符串应该以vnd.android.cursor.dir/自定义类型。数据属于非集合类型数据,应该返回vnd.android.cursor.item/自定义类型。


    UriMatcher 用于匹配Uri

    UriMatcher类用于匹配Uri,它的用法如下:

    首先第一步把你需要匹配Uri路径全部给注册上,如下:

    //常量 UriMatcher.NO_MATCH 表示不匹配任何路径的返回码
    
    UriMatcher sMatcher = new UriMatcher(UriMatcher.NO_MATCH);
    
    //如果match()方法匹配content://cn.loaderman.provider.personprovider/person路径,返回匹配码为1
    
    sMatcher.addURI(“cn.loaderman.provider.personprovider”, “person”, 1);//添加需要匹配uri,如果匹配就会返回匹配码
    
    //如果match()方法匹配content://cn.loaderman.provider.personprovider/person/230路径,返回匹配码为2
    
    sMatcher.addURI(“cn.loaderman.provider.personprovider”, “person/#”, 2);//#号为通配符
    
    switch (sMatcher.match(Uri.parse("content://cn.loaderman.provider.personprovider/person/10"))) {
    
    case 1
    
      break;
    
    case 2
    
      break;
    
    default://不匹配
    
      break;
    
    }
    

    注册完需要匹配的Uri后,就可以使用sMatcher.match(uri)方法对输入的Uri进行匹配,如果匹配就返回匹配码,匹配码是调用addURI()方法传入的第三个参数,假设匹配content://cn.loaderman.provider.personprovider/person路径,返回的匹配码为1


    ContentUris 获取和添加Uri信息

    ContentUris类用于获取Uri路径后面的ID部分,它有两个比较实用的方法:

    withAppendedId(uri, id)用于为路径加上ID部分:

    Uri uri = Uri.parse("content://cn.loaderman.provider.personprovider/person")
    
    Uri resultUri = ContentUris.withAppendedId(uri, 10);
    
    //生成后的Uri为:content://cn.loaderman.provider.personprovider/person/10
    
    parseId(uri)方法用于从路径中获取ID部分:
    
    Uri uri = Uri.parse("content://cn.loaderman.provider.personprovider/person/10")
    
    long personid = ContentUris.parseId(uri);//获取的结果为:10
    
    另外Uri类中还有一个静态方法withAppendedPath(baseUri, pathSegment)也可以在某个路径上继续添加路径:
    
    Uri uri = Uri.parse("content://cn.loaderman.provider.personprovider/person")
    
    Uri resultUri = Uri.withAppendedPath(uri, “update”);
    
    // 生成后的Uri为: content://cn.loaderman.provider.personprovider/person/update
    

  • 相关阅读:
    WP7编译问题:The application could not be launched for debugging
    cocos2dxnaTweeJump学习笔记1(都是自己看别人代码后所感所想,希望有懂的人指出我的错误或者大家交流交流)
    判断datatalbe是否为空
    SOAP协议基础(转自Ksxs's )
    那些年我还不懂:IList,ICollection,IEnumerable,IEnumerator,IQueryable(转)
    MyEclipse中 智能提示 JSP 页面的html 标记属性值
    MyEclipse中设置智能提示
    MyEclipse快捷键大全
    向朋友借钱:文章值得一读,让人思索良久
    生存逼着我成功
  • 原文地址:https://www.cnblogs.com/loaderman/p/6421142.html
Copyright © 2011-2022 走看看