黑马程序员安卓教程:Android下的多线程下载器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Android下的多线程下载器
在文档“javase下的多线程断点下载”中,我们已经了解了多线程断点下载的核心逻辑和代码,下面我们将在Android中实现多线程断点下载,其实质就是将javase多线程断点下载的核心代码移植到Android工程下。

具体步骤如下:
1.新建工程
【File】→【new】→【Android Application Project】命名为:06_android多线程下载器。

2.编写布局
根据设计需求,编写布局文件,效果如图1-1所示:
图1-1所示
图1-1对应的xml布局文件代码如例1-1:
例1-1
例1-1在布局文件中定义了关键控件的id,已经点击按钮的响应事件。

当用户点击按钮时,则读取请求路径和请求线程数并向服务端发送请求,多线程下载指定路径下的资源到客户端。

3.查找控件
在Activity中查找相关控件,代码如例1-2:
4.编写点击事件
编写按钮的点击事件download,从服务端请求下载数据。

代码如例1-3所示:
例1-3是点击事件的响应事件,当点击按钮时先要读取请求路径输入框和请求线程输入框的值,并判断其值是否为空。

若请求路径为空则弹出toast提示;若请求线程为空则使用默认的线程数3,不为空则需要将该请求线程值转化为int类型的数值。

在判断之后便是请求网络资源的方法,即例1-3处省略部分。

由于请求网络资源是一个耗时操作,因此我们应该新建一个子线程,在该子线程的run方法中添加断点下载资源的方法。

如例1-4所示:
例1-4开辟多个线程开始下载网络资源,每一个线程下载指定区间的一部分数据,关于下载方法DownloadThread()我们在javase多线程断点下载中已经详细的阐述过,在此不再讲述。

需要指出的是:在javase多线程断点下载中,我们是在工程目录下新建文件用来保存当前线程已经下载的位置,由于Android系统的文件目录是只读的,不可修改。

所以我们在保存记录当前线程的下载位置时需要指定到具体的目录下,如指定到SD卡中,代码如例1-5:
例1-5保存当前线程的下载位置到SD卡中,那么在读该文件数据时也需要在该SD卡指定的路径下载读取,如例1-6:
运行程序,logcat打印信息如图1-2所示:
图1-2所示
打开DDMS的文件浏览视图,观察下载的exe文件,如图1-3所示:
图1-3所示。

相关文档
最新文档