contentprovider笔记

来源:互联网 发布:debian软件安装位置 编辑:程序博客网 时间:2024/06/14 02:56

1创建一个类xxProvider继承自contentprovider

2在AndroidManifest.xml中配置provider,加上两个属性(必须)name与authorties,name是指定的contentprovider路径java类(包名+类名)authorties是指定包名加自定义的名称

3xxProvider中定义全局变量uriMachers,再用这个变量add若干个uri,uri.parse路径,路径采用content://    + authorties的名称,加上常量名,如url.parse("content://com.example.xx/query"); uriMarcher.add(uri,"query",QUERY);   query为匹配的相当于一个变量,QUERY为一个常量 为private final static int QUERY=1

4在重写的父类query中写入判断条件,如果uriMarches.march(uri) == QUERY)则进行内部操作,如提取数据库中的集合,返回一个curser

5内容提供者生成后会提供一个标识后门的标志 Tag为

Pub com.example.provider.personprovider: com.example.provider.PersonDBProvider

供其它的应用访问自己私有的资源

6创建一个新的项目用来访问这个内容提供者,根据上面控制台提示的消息,拿到uri,路径采用content://  + com.example.provider.personprovider + /query的方式,这就拿到了准确的访问xxProvider的路径了,在得到this.getContentResolver之后拿到内容解析器之后 contentResolver.query(把uri塞进去,再填写一些数据库中的字段,拿到cursor这个集合之后就能循环取数据了。

0 0
原创粉丝点击