ContentProvider的创建和使用
(1)首先创建内容提供者,实现暴露数据库程序的功能 定义一个类继承android.content包下的ContentProvider类,ContentProvider是一个抽象类,使用该类时重写 onCreate() getType() query() insert() delete() update()抽 象方法。
public class PersonDBProvider extends ContentProvider {public boolean onCreate() {return false;}public String getType(Uri uri) {return null;}public Cursor query(Uri uri, String[] strings, String s, String[] strings1, String s1) {return null;}public Uri insert(Uri uri, ContentValues contentValues) {return null;}@Overridepublic int delete(Uri uri, String s, String[] strings) {return 0;}@Overridepublic int update(Uri uri, ContentValues contentValues, String s, String[] strings) {return 0;} )
(2)在清单文件里注册内容提供者 (注意:第二个引号中的内容“包名.自定义名(有一定含义的名字)”,第二个引号中的内容“包名.类名”)
<providerandroid:authorities="com.example.hanshu.first.contentResolver"android:name="com.example.hanshu.first.PersonDBProvider"></provider>
(3)定义匹配器和添加匹配规则
1. 在PersonDBProvider类中定义一个uri的配置器,用于匹配uri,如果路径不满足条件,返回-1;
2. 添加匹配规则
具体代码如下:
public class PersonDBProvider extends ContentProvider {private static UriMatcher matcher=new UriMatcher(UriMatcher.NO_MATCH);private static final int INSERT=1;private static final int QUERY=2;private static final int DELETE=3;private static final int UPDATE=4;static {matcher.addURI("com.example.hanshu.first.contentResolver","insert",INSERT);matcher.addURI("com.example.hanshu.first.contentResolver","query",QUERY);matcher.addURI("com.example.hanshu.first.contentResolver","delete",DELETE);matcher.addURI("com.example.hanshu.first.contentResolver","update",UPDATE);}public boolean onCreate() {return false;}public String getType(Uri uri) {return null;}public Cursor query(Uri uri, String[] strings, String s, String[] strings1, String s1) {return null;}public Uri insert(Uri uri, ContentValues contentValues) {return null;}@Overridepublic int delete(Uri uri, String s, String[] strings) {return 0;}@Overridepublic int update(Uri uri, ContentValues contentValues, String s, String[] strings) {return 0;} }
转载于:https://www.cnblogs.com/sunrise-hs/p/5665338.html
ContentProvider的创建和使用相关推荐
- contentprovider java_创建Contentprovider,
创建Contentprovider: 1. 创建一个provider----ExampleContentProvider a. 设计authority b. 设计path c.处理content UR ...
- 基础总结篇之八:创建及调用自己的ContentProvider
鍥而捨之,朽木不折:鍥而不捨,金石可鏤.戰國.荀子<勸學篇> 若不能坚持到底,即使是朽木也不能折断:只要坚持不停地用刀刻,就算是金属玉石也可以雕出花饰.用今天的话来说就是:再容易的事情,没 ...
- ContentProvider学习笔记
一.什么ContentProvider ... 二.如何使用ContentProvider ... 三.沙场练兵-实例操练 ... 四.深入理解ContentProvider原理 为什么使用Conte ...
- 【Android 安全】DEX 加密 ( Application 替换 | 分析 ContentProvider 组件中调用 getApplication() 获取的 Application 二 )
文章目录 一. ActivityThread 中的 installProvider 方法 ( 创建 ContentProvider 内容提供者 ) 二. installProvider 方法的第三分支 ...
- 【Android 安全】DEX 加密 ( Application 替换 | 分析 ContentProvider 组件中调用 getApplication() 获取的 Application )
文章目录 一. ContentProvider 创建过程分析 二. ActivityThread 中的 H 处理 BIND_APPLICATION 消息 三. ActivityThread 中的 ha ...
- Android中ContentProvider组件数据共享
ContentProvider的功能和意义: 主要用于对外共享数据,也就是通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以通过ContentProvider对指定应用中 ...
- [【Android】Android之ContentProvider总结
原文来自:http://www.cnblogs.com/devinzhang/archive/2012/01/20/2327863.html 1.适用场景 1) ContentProvider为存储和 ...
- Android 程式开发:(二十)内容提供者 —— 20.6 自定义ContentProvider的使用
现在,ContentProvider已经创建好了,可以去尝试使用一下. 1. 使用之前的工程,在布局文件main.xml中添加一些控件. <?xml version="1.0" ...
- 移动开发技术课程作业三——ContentProvider
作业要求: 1.contentprovider是安卓四大组件之一,请使用其方法类进行数据获取: 2.请自建一个provider,然后在另一个app中使用resolver调用这个provider. 3. ...
最新文章
- PhoneGap app 性能研究小结(2013网页装在兜里)
- Windows内核启动开关/3GB和win10下boot.ini文件问题
- fasttext的异步随机梯度下降导致结果不一致
- mysql老是自动停止_ecs云服务器 mysql经常自动停止挂掉重启问题分析
- @value 注入静态属性_TP6依赖注入是如何实现的
- (94)Vivado时序约束TCL命令-get_nets
- git reset --mixed, - soft和--hard有什么区别?
- Ubuntu下编译SHTOOLS
- JavaScript 01
- linux下目录与文件的权限及特殊权限
- x210ii开发板使用fastboot下载出现没有权限的问题
- debian10将系统软件包和docker的软件源改成国内源
- VIN码识别/车架号识别独家支持云识别
- java支付宝网页授权_轻松实现支付宝服务窗网页授权从配置到获取授权获取用户信息...
- 如何落户北京?19年积分落户规模为6000人!
- 计算机显示器分辨率,现在电脑的主流显示器的分辨率一般是多大?
- 哥伦比亚大学计算机科学硕士排名,哥伦比亚大学计算机科学硕士排名第16(2020年TFE Times排名)...
- 苹果cms模板_苹果cmsv10高端模板有哪些?
- 箱体图如何排除异常点
- 一招学会DIY官网可视化设计支持导出微擎、UNIAPP、H5、微信小程序源码