Androidx学习笔记(81)--- 内容提供者(ContentProvider)
来源:互联网 发布:网络红歌2014火爆歌曲 编辑:程序博客网 时间:2024/06/08 17:52
内容提供者
- 应用的数据库是不允许其他应用访问的
- 内容提供者的作用就是让别的应用访问到你的数据库
- 内容提供者的作用:把私有数据暴露给其他应用,通常,是把私有数据库的数据暴露给其他应用
自定义内容提供者,继承ContentProvider类,重写增删改查方法,在方法中写增删改查数据库的代码,举例增方法
@Overridepublic Uri insert(Uri uri, ContentValues values) { db.insert("person", null, values); return uri;}
在清单文件中定义内容提供者的标签,注意必须要有authorities属性,这是内容提供者的主机名,功能类似地址
<provider android:name="com.exp.contentprovider.PersonProvider" android:authorities="com.exp.person" android:exported="true" ></provider>
创建一个其他应用,访问自定义的内容提供者,实现对数据库的插入操作
public void click(View v){ //得到内容分解器对象 ContentResolver cr = getContentResolver(); ContentValues cv = new ContentValues(); cv.put("name", "小方"); cv.put("phone", 138856); cv.put("money", 3000); //url:内容提供者的主机名 cr.insert(Uri.parse("content://com.exp.person"), cv);}
UriMatcher
- 用于判断一条uri跟指定的多条uri中的哪条匹配
添加匹配规则
//指定多条urium.addURI("com.exp.person", "person", PERSON_CODE);um.addURI("com.exp.person", "company", COMPANY_CODE);//#号可以代表任意数字um.addURI("com.exp.person", "person/#", QUERY_ONE_PERSON_CODE);
通过Uri匹配器可以实现操作不同的表
@Overridepublic Uri insert(Uri uri, ContentValues values) { if(um.match(uri) == PERSON_CODE){ db.insert("person", null, values); } else if(um.match(uri) == COMPANY_CODE){ db.insert("company", null, values); } else{ throw new IllegalArgumentException(); } return uri;}
如果路径中带有数字,把数字提取出来的api
int id = (int) ContentUris.parseId(uri);
0 0
- Androidx学习笔记(81)--- 内容提供者(ContentProvider)
- Androidx学习笔记(82)--- 内容提供者(ContentProvider)-自定义内容提供者
- ContentProvider(内容提供者)
- ContentProvider(内容提供者)
- 内容提供者(ContentProvider)复习
- android基础笔记:内容提供者及访问(ContentProvider、ContentResolver)
- 安卓第十四天笔记-内容提供者(ContentProvider)
- Android学习之内容提供者ContentProvider
- Android学习九 ContentProvider内容提供者相关
- 63.内容提供者ContentProvider--系统内容提供者(获取短信)
- (android)内容提供者contentprovider(-)
- 使用ContentProvider(内容提供者)共享数据
- Android内容提供者 --ContentProvider(待写)
- 黑马程序员 ----------- 内容提供者(ContentProvider)
- Android组件之ContentProvider(内容提供者)
- 第九天 ContentProvider(内容提供者、接受者)
- android之ContentProvider(内容提供者)
- 内容提供者(ContentProvider)---获取联系人
- 中国科学院信息工程研究所招聘研发工程师 /大数据安全分析工程
- POJ C++程序设计 编程题#1 编程作业—运算符重载
- jQuery多次选中checkbox失效
- C++11之auto、decltype关键字
- BigDecimal取余运算
- Androidx学习笔记(81)--- 内容提供者(ContentProvider)
- selector背景选择器
- GDKOI2016总结
- Androidx学习笔记(82)--- 内容提供者(ContentProvider)-自定义内容提供者
- 拆掉思维里的墙鸡汤~!~
- SELinux开启与关闭各参数说明!!!!
- 垂直竖向,水平滚动插件插件
- 剑指offer——调整数组顺序使奇数位于偶数前面
- [51NOD1670] 打怪兽