AsyncTask实现断点续传

  • 时间:
  • 浏览:6
  • 来源:uu快3棋牌_uu快3讨论群_规律

源码下载:https://github.com/liuling07/MultiTaskAndThreadDownload

3.并非 手动调用onPreExecute(),doInBackground(Params… params),onProgressUpdate(Progress… values),onPostExecute(Result result)这几次法律妙招。

下面是使用AsyncTask实现断点续传的代码:

3.doInBackground(Params… params),在onPreExecute()完成后立即执行,用于执行较为费时的操作,此法律妙招将接收输入参数和返回计算结果。在执行过程中能够调用publishProgress(Progress… values)来更新进度信息。

5.onPostExecute(Result result),当后台操作以后开使时,此法律妙招可能性被调用,计算结果将做为参数传递到此法律妙招中,直接将结果显示到UI组件上。

1.异步任务的实例能够在UItcp连接池中创建。

原来异步任务的执行一般包括以下几次步骤:

  前一天公司顶端项目的下载模块都有使用xUtils提供的,最近看过下xUtils的源码,它顶端也是使用AsyncTask来执行异步任务的,它的下载也饱含 了断点续传的功能。这里我当时人也使用AsyncTask也实现了简单的断点续传的功能。

断点续传的思路确实也挺简单,首先判断待下载的文件在本地否有有所处,可能性所处,则表示该文件可能性下载过一次要了,只能够获取文件当前大小即已下载大小,设置给http的header就行了:

  1、布局文件代码:

  原来简单的断点续传功能就实现了,这里假若单个tcp连接池的,可能性涉及多个tcp连接池一起去下载,那僵化 并否有,顶端再琢磨琢磨。

  2、断点续传核心代码:

  首先说一说AsyncTask吧,先来看看AsyncTask的定义:

2.onPreExecute(),在execute(Params… params)被调用后立即执行,一般用来在执行后台任务前对UI做并否有标记。

并否有 泛型类型分别代表“启动任务执行的输入参数”、“后台任务执行的进度”、“后台计算结果的类型”。在特定场合下,并都有所有类型都被使用,可能性这样 被使用,能够用java.lang.Void类型代替。

  布局比较简单,就原来按钮和原来进度条控件,按钮控制下载与暂停。

4.能够了在doInBackground(Params… params)中更改UI组件的信息。

4.onProgressUpdate(Progress… values),在调用publishProgress(Progress… values)时,此法律妙招被执行,直接将进度信息更新到UI组件上。

5.原来任务实例能够了执行一次,可能性执行第二次可能性抛出异常。

2.execute(Params… params)法律妙招能够在UItcp连接池中调用。

在使用的前一天,有几点能够格外注意:

1.execute(Params… params),执行原来异步任务,能够我们 在代码中调用此法律妙招,触发异步任务的执行。