5.内容提供器
来源:互联网 发布:android 高仿淘宝 编辑:程序博客网 时间:2024/05/07 00:16
5.内容提供器
主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访数据的安全性。
5.1访问其他程序中的数据
5.1.1ContentResolver
Context类的getContentResolver()方法得到ContentResolver类的对象。ContentResolver对象的insert(),delete(),update(),query()方法接受一个Uri对象,用Cursor对象接受增删查改方法后的结果,用While(cursor.moveToNext()){}进行遍历
Uri对象由权限和路径两部分组成,权限一般是包名,路径一般是表名。
Uri uri = Uri.parse(“content://com.example.app.provider/table1”);
5.2创建自己的内容提供器
新建MyProvider类继承ContentProvider类。重写6个方法。
- onCreate()
初始化内容提供器的时候调用。通常会在这里完成对数据库的创建和升级等操作,
返回true 表示内容提供器初始化成功,返回false 则表示失败。注意,只有当存在
ContentResolver 尝试访问我们程序中的数据时,内容提供器才会被初始化。 - query()
从内容提供器中查询数据。使用uri 参数来确定查询哪张表,projection 参数用于确
定查询哪些列,selection 和selectionArgs 参数用于约束查询哪些行,sortOrder 参数用于
对结果进行排序,查询的结果存放在Cursor 对象中返回。 - insert()
向内容提供器中添加一条数据。使用uri 参数来确定要添加到的表,待添加的数据
保存在values 参数中。添加完成后,返回一个用于表示这条新记录的URI。 - update()
更新内容提供器中已有的数据。使用uri 参数来确定更新哪一张表中的数据,新数
据保存在values 参数中,selection 和selectionArgs 参数用于约束更新哪些行,受影响的
行数将作为返回值返回。 - delete()
从内容提供器中删除数据。使用uri 参数来确定删除哪一张表中的数据,selection
和selectionArgs 参数用于约束删除哪些行,被删除的行数将作为返回值返回。 - getType()
根据传入的内容URI 来返回相应的MIME 类型。
一个内容URI 所对应的MIME字符串主要由三部分组分:
1. 必须以vnd开头。2. 如果内容URI以路径结尾,则后接android.cursor.dir/,如果内容URI以id结尾则后接android.cursor.item/。3. 最后接上vnd.<authority>.<path>。ex:vnd.android.cursor.dir/vnd.com.example.app.provider.table1
一个能够匹配任意表的内容URI 格式就可以写成:
content://com.example.app.provider/*
一个能够匹配table1 表中任意一行数据的内容URI格式就可以写成:
content://com.example.app.provider/table1/#
我们再借助UriMatcher 这个类就可以轻松地实现匹配内容URI 的功能。UriMatcher
中提供了一个addURI()方法,这个方法接收三个参数,可以分别把权限、路径和一个自定义
代码传进去。这样,当调用UriMatcher 的match()方法时,就可以将一个Uri 对象传入,返
回值是某个能够匹配这个Uri 对象所对应的自定义代码,利用这个代码,我们就可以判断出
调用方期望访问的是哪张表中的数据了
0 0
- 5.内容提供器
- ContentProvider ---内容提供器
- android内容提供器
- ContentProvider内容提供器
- 内容提供器
- 内容提供器Demo
- 探究内容提供器
- ContentProvider(内容提供器)
- 内容提供器
- Android内容提供器
- 内容提供器
- 内容提供器
- 内容提供器
- Androi--内容提供器
- ContentProvider 内容提供器
- 内容提供器总结
- 探究内容提供器
- Android 内容提供器---内容提供器基础(概述)
- 4.文件储存
- 【GOF23设计模式】_状态模式_UML状态图_酒店系统房间状态_线程对象状态切换JAVA250
- Number of 1 Bits
- HeadFirstJava——4_对象的行为
- 恭喜您成为 2016 年度 Microsoft MVP
- 5.内容提供器
- 6.多媒体
- Android App监听软键盘按键的三种方式
- 数组、ArrayList
- 7.服务
- 红黑树(三)之 C++的实现
- Android完美实现kitkat透明导航效果
- 8.网络技术
- 9.基于位置的服务