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文件。

定制

publicclassCheckerextendsFileChecker {
// 父类提供的数据。protectedUpdateupdate;
protectedFilefile;
@OverridepublicbooleanonCheckBeforeDownload() throwsException {
// 当FileCreator接口所创建的文件存在时,在检查到有更新且在启动下载任务前。触发检查// 返回true:检查成功。跳过下载任务并继续后续任务. 返回false:检查失败。执行下载任务并继续后续任务returntrue;
}
@OverridepublicvoidonCheckBeforeInstall() throwsException {
// 在调用安装apk的api之前,触发检查。// 不抛出异常: 检查成功,调用安装api进行操作。// 抛出异常: 检查失败。此次更新任务失败。通知到回调方法。
}
}

Clone this wiki locally