同步操作将从 Bvin/AppUpdateModule 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
用到UtilsModule,主要有ToastUtils可能需要弹出先一些状态信息提示,StringUtils从Map集合中生存URL形式的字符串,以及版获取app版本的工具方法
检测更新使用UpdateManager.checkVersion(String url,Map<String, Object> params,CheckListener checkListener)方法,url是检测更新的接口地址,params是检查更新接口的参数(为了兼容不同接口,有的接口可能需要传一些用户id或者当前版本的数据),checkListener就是检测更新状态监听器,如果不传就会以一个默认的形式去展现UI,如果需要自己定义UI则完全可以自己实现这个监听器,在监听器里面实现自己风格的UI。
cn.bvin.lib.module.update.UpdateInfo:
更新信息模型,任何接口最好都按照此模型来定制接口数据形式
public String version;// 版本号 public String updateDesc;// 更新内容 public String apkUrl;// 更新文件地址 public String apkFileSize;// 更新文件大小
DBUpdateInfo是继承UpdateInfo的一个类,因为有的检测更新接口可能包含一个基础数据的版本更新在里面。
cn.bvin.lib.module.update.CheckRequest: 继承Request,主要构造参数是需要一个包含请求地址和请求参数的WrapRequest对象和一个检测更新状态的监听器。 ``` @Override protected void deliverResponse(UpdateInfo arg0) { if (arg0!=null&&checkListener!=null) { //交付响应结果 this.checkListener.onCheckSuccess(arg0); } }
@Override
public byte[] getBody() throws AuthFailureError {
//如果有参数就把
if (wrapRequest!=null&&wrapRequest.getParam()!=null) {
//建议使用MapParams参数形式
if (wrapRequest.getParam().getMapParams()!=null) {
return wrapRequest.getParam().getBytes();
}
}
return super.getBody();
}码
```
DefaultCheckRequest是一个默认的接口返回内容转换成UpdateInfo对象的实现如有需要可以自己实现,因为可能不同接口返回数据形式是不一样的。
cn.bvin.lib.module.update.CheckListener: 检查更新异步监听器,抽象类。为了接口能够有部分实现,并且需要与Volley中的Request类和ErrorListener融合妥协的结果,本来应该是interface用起来会更方便,java中implements不限制,但extends只能继承一个。 ``` /** * 开始检测更新,是一个耗时的网络请求的过程 * @param context 用以获取app本地版本号 * @param url 检测更新的接口地址 * @param param 更新接口需要传的参数 */ public abstract void onCheckStart(Context context, String url, RequestParam param);
/**
* 检测更新成功
* @param updateInfo 服务器返回的信息
*/
public abstract void onCheckSuccess(UpdateInfo updateInfo);
/**
* 检测更新失败
* @param e 失败原因
*/
public abstract void onCheckFailure(Throwable e);
```
DefaultCheckListener是基于CheckListener实现了版本比较的功能。 ``` ** * 发现新版本,服务器版本大于app本地版本 * @param updateInfo 更新信息 */ public abstract void onUpdateFound(UpdateInfo updateInfo);
/**
* 没有发现新版,说明当前安装版本是最新版本
*/
public abstract void onUpdateNotfoud();
```
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。