ContentProvider
2015-12-28 10:50
811 查看
ContentProvider
总:ContentProvider可以在不同应用之间实现数据共享分:
1.Uri:包含A,B,C,D四部分
content://com.llf.test/tablename/1
A:标准前缀,用来说明一个Content Provider控制这些数据,无法改变的;"content://"
B:URI 的标识,用于唯一标识这个ContentProvider,外部调用者可以根据这个标识来找到它。它定义了是哪个Content Provider提供这些数据。对于第三方应用程序,为了保证URI标识的唯一性,它必须是一个完整的、小写的类名。这个标识在 元素的 authorities属性中说明:一般是定义该ContentProvider的包.类的名称
C:路径(path),通俗的讲就是你要操作的数据库中表的名字,或者你也可以自己定义,记得在使用的时候保持一致就可以了;"content://com.bing.provider.myprovider/tablename"
D:如果URI中包含表示需要获取的记录的ID;则就返回该id对应的数据,如果没有ID,就表示返回全部; "content://com.bing.provider.myprovider/tablename/#" #表示数据id.
把一个字符串转化为uri
Uri uri = Uri.parse("content://com.bing.provider.personprovider/person")
2.UriMatcher类使用介绍--UriMatcher类用于匹配Uri:
A.首先注册正确匹配的uri
3.[b]ContentUris类介绍:[/b]
ContentUris类用于操作Uri路径后面的ID部分,它有两个比较实用的方法:withAppendedId(uri, id)用于为路径加上ID部分:
parseId(uri)方法用于从路径中获取ID部分:
long
personid = ContentUris.parseId(uri);
4.ContentProvider类主要方法的作用:
public boolean onCreate():该方法在ContentProvider创建后就会被调用,Android开机后,ContentProvider在其它应用第一次访问它时才会被创建。
public Uri insert(Uri uri, ContentValues values):该方法用于供外部应用往ContentProvider添加数据。
public int delete(Uri uri, String selection, String[] selectionArgs):该方法用于供外部应用从ContentProvider删除数据。
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs):该方法用于供外部应用更新ContentProvider中的数据。
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder):该方法用于供外部应用从ContentProvider中获取数据。
public String getType(Uri uri):该方法用于返回当前Url所代表数据的MIME类型。补充:如果操作的数据属于集合类型,那么MIME类型字符串应该以vnd.android.cursor.dir/开头,否则"vnd.android.cursor.dir/person"
别忘了在配置文件中注册provider
相关文章推荐
- yii权限控制的方法(三种方法)
- matplotlib 绘图总结
- yii使用activeFileField控件实现上传文件与图片的方法
- LAMP下的PHP执行sql语句的写法
- yii实现使用CUploadedFile上传文件的方法
- 如何为PHP贡献代码
- 如何为PHP贡献代码
- Yii中Model(模型)的创建及使用方法
- ARM上移植PHP5.5.30
- yii数据库的查询方法
- PHP校验身份证号
- yii分页组件用法实例分析
- MapReduce-XML处理-定制OutputFormat及定制RecordWriter
- 在cmd中登录ftp服务器
- PHP读取文件内容的五种方式
- 集合判断不用size判断用isEmtpy判断
- laravel结合datatables使用。
- php 正则取字符串中间 去指定字符串开头 指定字符串结尾
- 深入浅出讲解:php的socket通信
- PHP中的socket_read和socket_recv区别详解