跨程序共享数据,探究内容提供器

内容提供器简介

  • 内容提供器(Content Provider)主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时能保证被访数据的安全性。目前,使用内容提供器是 Android 实现跨程序共享数据的标准方式
  • 内容提供器的用法一般有两种:
    • 一种是使用现有的内容提供器来读取和操作相应程序中的数据
    • 另一种是创建我们自己的内容提供器来为我们的程序提供外部访问的接口

访问其他程序中的数据

ContentResolver的基本用法

  • 可以通过Context的getContentResolver()方法获取到该类的实例
  • ContentResolver中提供了一系列的方法用于对数据进行CRUD操作
    • insert()用于添加数据
    • update()用于更新数据
    • delete()用于删除数据
    • query()用于查询数据
  • ContentResolver 中的增删改查方法都是不接收表名参数的,而是使用一个 Uri 参数代替,这个参数被称为内容 URI
  • 内容URI包括两部分
    • 权限(authority):权限是用于对不同的应用程序做区分的,一般为了避免冲突,都会采用程序包名的方式来进行命名
    • 路径(path):路径则是用于对同一应用程序中不同的表做区分的,通常都会添加到权限的后面
  • 还需要在字符串的头部加上协议声明,因此,内容URI最标准的格式写法如下:

    content://com.example.app.provider/table1
    content://com.example.app.provider/table2
    
  • 得到内容URI之后,还需要将它解析成Uri对象
  • ContentResolve的query()方法里的参数
    这里写图片描述

创建自己的内容提供器

创建内容提供器的步骤

  • 新建一个类去继承 ContentProvider 的方式来创建一个自己的内容提供器
  • ContentProvider 类中有六个抽象方法,我们在使用子类继承它的时候,需要将这六个方法全部重写
    • onCreate():初始化内容构造器时调用
    • query():从内容提供器中查询数据
    • insert():想内容提供器添加数据
    • update():更新内容提供器中已有的数据
    • delete():从内容提供器删除数据
    • getType():根据传入的内容URI来返回相应的MIMW类型
  • 内容URI的格式主要有两种:
    • 以路径结尾就表示期望访问该表中的所有数据
    • 以id结尾就表示期望访问该表中拥有相应id的数据
  • 使用通配符的方式来分别匹配这两种格式的内容 URI
    • *:表示匹配任意长度的任意字符
    • *:表示匹配任意长度的任意字符
  • 借助 UriMatcher这个类就可以轻松地实现匹配内容 URI的功能
  • 一个内容URI所对应的MIME字符串主要由三部分组成,Android对这三部分做了如下规定:
    • 必须以vnd开头
    • 如果内容 URI 以路径结尾,则后接 android.cursor.dir/,如果内容 URI 以 id 结尾,则后接 android.cursor.item/
    • 最后接上 vnd.<authority>.<path>

Git时间,版本控制工具进阶

忽略文件

  • 通过.ignore文件来标识
  • 在.ignore文件中可以使用“*”通配符

查看修改的内容

  • 使用git status命令查看文件修改情况
  • 使用git diff命令查看文件修改的内容

撤销未修改提交

  • 使用git checkout命令撤销
  • 这种撤销方式只适用于那些还没有执行过 add 命令的文件
  • 对于已添加的文件可以使用git reset取消添加后再使用git checkout来取消

查看提交记录

  • 使用git log可以查看历史提交记录
  • 在命令中指定该记录的 id,并加上-1 参数表示我们只想看到一行记录
  • 在命令中加入-p可以查看修改内容
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值