Skip to content

FileChecker

Haoge edited this page Aug 6, 2018 · 2 revisions

作用

用于对下载下来的apk进行检查。当检查成功后,才可进行安装。 检查时机有两个:

  1. 当检查到有更新,在启动下载任务前。触发检查。当检查成功,则跳过下载任务。进行后续操作。
  2. 在启动apk安装前,触发检查。当检查成功,请求调用安装操作。

配置

[UpdateConfig.getConfig() / UpdateBuilder.create()]
    .setFileChecker(checker);

接口

FileChecker

默认实现

DefaultFileChecker:

  • 若Update.getMd5()为空时。使用PackageManager读取apk的版本信息并与Update.versionCode比对
  • 若Update.getMd5()不为空。则计算apk的md5值并与Update.md5值进行比对。
  • 若为在onCheckBeforeInstall(),即下载完成后启动安装任务之前的检查。当此时检查失败。则删除apk文件。

定制

public class Checker extends FileChecker {
    // 父类提供的数据。
    protected Update update;
    protected File file;

    @Override
    public boolean onCheckBeforeDownload() throws Exception {
        // 当FileCreator接口所创建的文件存在时,在检查到有更新且在启动下载任务前。触发检查
        // 返回true:检查成功。跳过下载任务并继续后续任务. 返回false:检查失败。执行下载任务并继续后续任务
        return true;
    }

    @Override
    public void onCheckBeforeInstall() throws Exception {
        // 在调用安装apk的api之前,触发检查。
        // 不抛出异常: 检查成功,调用安装api进行操作。
        // 抛出异常: 检查失败。此次更新任务失败。通知到回调方法。
    }
}