android同时下载多个文件,Android 多线程断点续传同时下载多个大文件

本文介绍了在Android环境下实现多线程断点续传下载的详细过程,涉及DownloadManager、DownloadService、DownloadTask和ThreadDAOImpl等关键类。通过分段下载、线程管理以及数据库保存断点信息,实现高效且可续传的大文件下载功能。
摘要由CSDN通过智能技术生成

最近学习在Android环境中一些网络请求方面的知识,其中有一部分是关于网络下载方面的知识。在这里解析一下自己写的demo,总结一下自己所学的知识。下图为demo的效果图,仿照一些应用下载商城在ListView中列出加载项,然后可以可以下载和停止。

c9cc14d6522fa70f3eceff464bdc3c54.gif

1.概述

这里有几个比较重要的类DownloadManager、DownloadService、DownloadTask、ThreadDAOImpl。主要的下载流程如下。

(1) DownloadManager 负责下载任务的调配,以及下载服务DownloadService的启动

(2) DownloadService 主获取下载文件的的一些信息,包括文件的名字、文件的长度等,并创建下载任务DownloadTask

(3) DownloadTask 是正式下载文件的类,首先查看数据库里有没保存过相应的断点,并从相应的断点开始下载,如果没有则将文件分段,并启动下载

(4) ThreadDAOImpl 数据库操作类,主要是保存线程下载的断点信息

2.多线程断点续传

当然这里最核心的部分就是多线程断点续传,原来不是很难,就是将要下载的文件分割成多个部分,每个部分使用的不同的线程同时下载。

2.1获取下载文件长度,设置本地文件

在DownloadService 设置下载文件的信息,如下一段代码:

classInitThread extends Thread {//FileInfo fileInfo;

TaskInfo taskInfo;publicInitThread (TaskInfo taskInfo) {this.taskInfo =taskInfo;

}

@Overridepublic voidrun() {

super.run();

Log.i(tag,"InitThread");try{

URL url= newURL(taskInfo.getUrl());

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值