切换风格

默认Lavender Sky Flowers Wizard Snow Beige California City Dragon Black London Sunset glow Pink Cloud
123下一页

10

主题

1192

积分

0

精华

用户组 

易积分
5131
热心
0
好评
3
QQ

活跃会员

(二)准备学学类库了,没有教程,只能自已摸索[复制链接]
发表于 2020-12-1 16:19:34 | 显示全部楼层 |阅读模式
接上一贴:https://www.eruyi.cn/thread-9668-1-1.html
上一贴我们已经实现了更新过程中所需用到的初始化下载路径和取下载信息,算是一个还算完整的实用类库了。但在使用中,我们还需要用到下载的类库,这就不太完美了,我们最终是要实现我们的更新类库,检查到有更就,就自已下载,下载完了,就自已安装,不用到借助别的类库来实现,所以这里我们就得实现下载功能,下载功能是独立的,在这里我们就先来搞一个最简单的下载类库!

开搞!靠,不会,没头绪啊!
网络搜索是万能的,我们找一找JAVA下载文件的方法,看来看去,用框架xutils这个方便快捷简单易搞,

下载到了一个xutils-2.6.14.jar包,我们在资源中导入:
1.png

接下来我们就想办法调用了,根据网上搜来的方法,下载文件需引用以下几块:

import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import java.io.File;

接口,我们给一个调用和完成、失败、进度这三个事件接口就够用了,如下:

2.png

下载过程,我们直接用xutils的http.download就可以了,(我们可以解压缩打开xutils包看看里面的结构,这个对理解和使用jar包比较有帮助)

创建httputils,下载:

        HttpUtils http = new HttpUtils();
        String webPath = string;


        http.download(webPath,string2,false,false,new RequestCallBack<File>(){
                                        //下载路径,保存路径,断点续传,自动重命名
                    @Override
                    public void onSuccess(ResponseInfo<File> responseInfo){
                                                下载Impl.this.下载完毕();
                                        }
                       

                    @Override
                    public void onLoading(long total, long current, boolean isUploading) {
                                                long 进度=current*100/total;
                                                下载Impl.this.下载进度改变(total,current,进度);
                                        }
                       

                    @Override
                    public void onFailure(HttpException e, String s){

                                        }


这里要说一下这个断点续传和自动命名,我们都false,断点续传如果是TRUE,每次启动就会接着上次的下载,如果有一个完整的文件,那他就不下载了。
自动重命名,这个就更得关掉了,不然他给你启一个很长又没有规律的名字,这个在后续自动安装的时候麻烦。

做好接口的触发:
public void 下载完毕(){
        EventDispatcher.dispatchEvent(this,"下载完毕");
        }
       
        public void 下载失败(){
            EventDispatcher.dispatchEvent(this,"下载失败");
        }
       
       
         public void 下载进度改变(long 总大小, long 已下载, long 进度){
        EventDispatcher.dispatchEvent(this,"下载进度改变",总大小,已下载,进度);
        }


这里说一下@Override,这个在上一贴里有看到,这里没写,其实这个可写可不写,我试了试是这样的。
但写着好一些,在抽象类里有接口的,我们就写上,没有接口事件的,这里就不写,这样有一个好处,就是试着编译查错的时候,写了,就会提示你抽象类里有没有漏写这个接口。

到这里我们的下载类库就可以编译发布使用了,试了试,效果挺好。

类库源码也发一下:
下载.rar (253.87 KB, 下载次数: 6, 售价: 10 易积分)

评分

参与人数 2易积分 +11 好评 +1 收起 理由
as6836660 + 5 + 1 此处应该有掌声~
易如意 + 6 感谢分享,很给力!~

查看全部评分

易如意中文编程学习交流论坛有你更精彩~
回复

使用道具 举报

10

主题

1192

积分

0

精华

用户组 

易积分
5131
热心
0
好评
3
QQ

活跃会员

发表于 2020-12-1 16:19:57 | 显示全部楼层
先占个楼
易如意中文编程学习交流论坛有你更精彩~
回复

使用道具 举报

45

主题

1079

积分

1

精华

用户组 

易积分
47859
热心
2
好评
6
QQ

活跃会员热心会员

发表于 2020-12-1 17:11:06 | 显示全部楼层
下一个类库大佬准备诞生

点评

  详情 回复 发表于 2020-12-1 17:48
易如意中文编程学习交流论坛有你更精彩~
回复

使用道具 举报

63

主题

837

积分

0

精华

用户组 

易积分
19769
热心
0
好评
2
QQ
发表于 2020-12-1 17:40:01 | 显示全部楼层
下一任类库开发大佬即将诞生

点评

欢迎多多指点,有错处误处别见笑  详情 回复 发表于 2020-12-1 17:50
易如意中文编程学习交流论坛有你更精彩~
回复

使用道具 举报

10

主题

1192

积分

0

精华

用户组 

易积分
5131
热心
0
好评
3
QQ

活跃会员

发表于 2020-12-1 17:48:21 来自手机 | 显示全部楼层
lishangwl 发表于 2020-12-1 17:11
下一个类库大佬准备诞生

易如意中文编程学习交流论坛有你更精彩~
回复

使用道具 举报

10

主题

1192

积分

0

精华

用户组 

易积分
5131
热心
0
好评
3
QQ

活跃会员

发表于 2020-12-1 17:50:13 来自手机 | 显示全部楼层
as6836660 发表于 2020-12-1 17:40
下一任类库开发大佬即将诞生

欢迎多多指点,有错处误处别见笑
易如意中文编程学习交流论坛有你更精彩~
回复

使用道具 举报

1

主题

547

积分

0

精华

用户组 

易积分
1906
热心
0
好评
0
发表于 2020-12-1 20:10:14 | 显示全部楼层
学习学习
易如意中文编程学习交流论坛有你更精彩~
回复

使用道具 举报

3

主题

225

积分

0

精华

用户组 

易积分
941
热心
0
好评
1
发表于 2020-12-1 23:12:18 来自手机 | 显示全部楼层
学习学习了
易如意中文编程学习交流论坛有你更精彩~
回复

使用道具 举报

0

主题

176

积分

0

精华

用户组 

易积分
2445
热心
0
好评
0
发表于 2020-12-2 00:03:29 | 显示全部楼层
易如意中文编程学习交流论坛有你更精彩~
易如意中文编程学习交流论坛有你更精彩~
回复

使用道具 举报

3

主题

709

积分

0

精华

用户组 

易积分
7478
热心
0
好评
1

活跃会员

发表于 2020-12-2 00:07:03 | 显示全部楼层
易如意中文编程学习交流论坛有你更精彩~
易如意中文编程学习交流论坛有你更精彩~
回复

使用道具 举报

QQ|sitemap|免责声明|RGB颜色对照表|手机版|小黑屋| 易如意 - E4A中文编程学习交流论坛

GMT+8, 2024-5-2 23:27 , Processed in 0.085274 second(s), 44 queries .

Powered by Discuz! X3.4

© 2001-2018 eruyi.cn

返回顶部