|
本帖最后由 toorup 于 2020-12-7 16:43 编辑
这两天在看ECLIPSE,学学JAVA,一直没发贴。下面继续我们的更新类库。
https://www.eruyi.cn/thread-9668-1-1.html (一)
https://www.eruyi.cn/thread-9693-1-2.html(二)
通过前面两贴,我们已经可以取更新信息和新版本的下载地址,并做出了下载功能,现在我们就来把这两个功能合并一起,
做到一个类库到位实现更新。
if((网络版本==""|下载地址=="")==true ){
检测失败();
应用操作.弹出提示("取网络更新失败!");
}else{
if(!本地版本.equals(网络版本)){
检测到有更新(网络版本,本地版本,更新信息,下载地址);
//------------------------------------------------------------------
//检测到有更新,我们在第一贴中给出的是事件,让用户来处理,
//我们要实现自动处理,就给再写一个处理过程,在这里调用,下面给出这个过程的写法
}else{
应用操作.弹出提示("当前已是最新版本!");
检测到无更新();
}
}
//调用下载并弹出对话框:
public void 检测到有更新(String 网络版本,String 本地版本,String 更新信息,String 下载地址){
EventDispatcher.dispatchEvent(this,"检测到有更新",网络版本,本地版本,更新信息,下载地址);
if(对话框类.信息框2("升级提示\n" ,"尊敬的用户您好\n本地版本 "+本地版本+"\n官方版本 "+ 网络版本 +"\n" + 更新信息,"立即更新","下次再说")==0){
开始下载(下载地址,savepath+"/"+appname);
//对话框类.显示进度对话框("下载进度:0/100");
对话框类.显示进度对话框2("更新版准备下载","下载进度:0/100",false);
}
}
//下载完成,直接调用安装:
public void 下载完毕(){
对话框类.关闭进度对话框();
对话框类.信息框("下载完成","下载完成是否安装!","立即安装");
应用相关类.安装应用(savepath+"/"+appname);
}
//下载进度:
public void 下载进度改变(long 总大小, long 已下载, long 进度){
对话框类.设置进度对话框进度((int)进度);
对话框类.设置进度对话框信息("总大小:" + 算术运算.四舍五入(总大小/1024/1024,2) + "M 已下载:" + 算术运算.四舍五入(已下载/1024/1024,2) + "M");
}
接口不需要太多,留给用户处理的,我们才给接口:
@SimpleFunction
void 初始化();
@SimpleFunction
void 检查更新(String URL,String 编码,int 超时时间);
@SimpleEvent
void 检测到无更新();
@SimpleEvent
void 下载失败();
@SimpleEvent
void 检测失败();
,这样就可以实现完整功能了;
调用就简单了:
有没有看完前面两贴的就看不太明白,test.htm的内容这里再发一下
<banbeng>1.6</banbeng>
<gxlr>
本期更新内容:
1.更新显示列数.
2.加入收藏模块.
</gxlr>
<gxaddress>https://od.lk/d/8ade18345fc7d1f2599f51a51ab6992e2206bcad65b6eeaf4b838eb7633138ce/myfilm.apk</gxaddress>
效果:
源码,实例,编译好的类库,这里都发一下吧,不学习类库的,前两个可以直接用的了
软件更新类库.elb
(257.73 KB, 下载次数: 0, 售价: 10 易积分)
|
|