四大组件 — ContentProvider - 自定义

    xiaoxiao2021-03-25  103

    自定义内容提供者 内容提供方 1. 创建 内容提供者 1. 创建一个类,继承并实现 ContentProvider抽象类 class MyProvider extends ContentProvider{ 2. 实现 其下的抽象方法 1. 创建方法 onCreate 一般 在onCreate方法中,获 数据库对象,从而可以实现 增 | 删 | 改 | 查等方法 2. 增加 | 删除 | 修改 | 查询 insert / delete / update / query / getType.... 2. 注册 内容提供者     与Activity同一个级别。     在 清单文件中注册内容提供者 <provider  android:name="com.example.unit6_cp_baidump3.MyProvider" android:authorities="com.baidu.mp3" android:exported="true"> </provider>        name: 类   路径 内容提供者全类名路径        authorities: Uri 域名 应用在手机中的唯一标识        exported: 权限  true | false 是否允许外部应用访问 那么!在内容提供者方 中 如何对所要操作的表进行区分呢? 内容提供方:如何区分Uri操作哪张表? 1. 创建 UriMatcher成员对象     设置 私有 静态 常量 uriMatcher对象 private static final UriMatcher matcher=new UriMatcher( UriMatcher.NO_MATCH ): 2. 书写 静态代码块 与 添加与各表对应的Uri数据 static{    matcher.add("域名","表名1",int 标记);    matcher.add("域名","表名2",int 标记); } 3. 实现 对Uri数据区分的操作     匹配并获取 Uri标记,通过 增 | 删 | 改 | 查 方法中的uri进行判断。 int 标记=matcher.match(uri): switch(标记) 内容获取方 1. 获取 内容解析器     在 内容获取类中 获取内容解析器 ContentResolver resolver = getContentResolver(); 2. 设置 统一资源定位Uri对象 Uri url=Uri.parse(String str); 参数:content:// 域名/数据表名 如:"content://com.bear.rikao/users" ------------------------------------------------------------------------------------------------------- Uri 统一资源定位 在实际应用中,我们将指定对某张表进行数据操作,那么如何指定这张表呢? 我们通过  在该Uri域名后 添加指定性的 数据,从而进行区分。 如:        content://域名/指定表名 ------------------------------------------------------------------------------------------------------- 3. 通过 内容解析器 调用 增删改查等方法 resolver.insert.......
    转载请注明原文地址: https://ju.6miu.com/read-22998.html

    最新回复(0)