切换风格

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

10

主题

1196

积分

0

精华

用户组 

易积分
5143
热心
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, 下载次数: 7, 售价: 10 易积分)

评分

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

查看全部评分

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

使用道具 举报

1

主题

57

积分

0

精华

用户组 

易积分
1145
热心
0
好评
0
发表于 2024-4-6 15:27:12 | 显示全部楼层
ѧϰ
易如意中文编程学习交流论坛有你更精彩~
回复

使用道具 举报

1

主题

57

积分

0

精华

用户组 

易积分
1145
热心
0
好评
0
发表于 2024-3-4 15:28:46 | 显示全部楼层
ѧϰ
易如意中文编程学习交流论坛有你更精彩~
回复

使用道具 举报

0

主题

4

积分

0

精华
易积分
0
热心
0
好评
0
发表于 2023-6-6 09:34:33 | 显示全部楼层
下一任类库开发大佬即将诞生
易如意中文编程学习交流论坛有你更精彩~
回复

使用道具 举报

0

主题

42

积分

0

精华

用户组 

易积分
295
热心
0
好评
0
发表于 2022-6-18 07:14:33 | 显示全部楼层
反对华国锋讲话稿肌肤光滑
易如意中文编程学习交流论坛有你更精彩~
回复

使用道具 举报

1

主题

23

积分

0

精华

用户组 

易积分
87
热心
0
好评
0
发表于 2021-4-20 18:51:09 | 显示全部楼层
toorup 发表于 2021-4-17 23:21
你那个月qq太难加上,一堆问答题

随便写就行了
易如意中文编程学习交流论坛有你更精彩~
回复

使用道具 举报

10

主题

1196

积分

0

精华

用户组 

易积分
5143
热心
0
好评
3
QQ

活跃会员

发表于 2021-4-17 23:21:03 来自手机 | 显示全部楼层
fiuashfui 发表于 2021-4-17 18:52
我也是刚入手  你入手时间比我还长呢   交流可以加一下1760053600

你那个月qq太难加上,一堆问答题
易如意中文编程学习交流论坛有你更精彩~
回复

使用道具 举报

1

主题

23

积分

0

精华

用户组 

易积分
87
热心
0
好评
0
发表于 2021-4-17 18:52:06 | 显示全部楼层
我也是刚入手  你入手时间比我还长呢   交流可以加一下1760053600

点评

你那个月qq太难加上,一堆问答题  详情 回复 发表于 2021-4-17 23:21
易如意中文编程学习交流论坛有你更精彩~
回复

使用道具 举报

4

主题

212

积分

0

精华

用户组 

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

使用道具 举报

0

主题

0

积分

0

精华

用户组 

易积分
18
热心
0
好评
0
QQ
发表于 2020-12-4 07:47:44 | 显示全部楼层
值得学习下,谢谢楼主
易如意中文编程学习交流论坛有你更精彩~
回复

使用道具 举报

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

GMT+8, 2024-5-17 19:02 , Processed in 0.067871 second(s), 45 queries .

Powered by Discuz! X3.4

© 2001-2018 eruyi.cn

返回顶部