<html>
<head>
<title>FileDownTask.java</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
.s0 { color: #cc7832;}
.s1 { color: #a9b7c6;}
.s2 { color: #6897bb;}
.s3 { color: #6a8759;}
</style>
</head>
<body bgcolor="#2b2b2b">
<table CELLSPACING=0 CELLPADDING=5 COLS=1 WIDTH="100%" BGCOLOR="#606060" >
<tr><td><center>
<font face="Arial, Helvetica" color="#000000">
FileDownTask.java</font>
</center></td></tr></table>
<pre><span class="s0">package </span><span class="s1">com.example.myapplication</span><span class="s0">;</span>
<span class="s0">import </span><span class="s1">android.os.AsyncTask</span><span class="s0">;</span>
<span class="s0">import </span><span class="s1">android.view.View</span><span class="s0">;</span>
<span class="s0">import </span><span class="s1">android.widget.ProgressBar</span><span class="s0">;</span>
<span class="s0">import </span><span class="s1">android.widget.TextView</span><span class="s0">;</span>
<span class="s0">import </span><span class="s1">java.io.BufferedInputStream</span><span class="s0">;</span>
<span class="s0">import </span><span class="s1">java.io.IOException</span><span class="s0">;</span>
<span class="s0">import </span><span class="s1">java.io.InputStream</span><span class="s0">;</span>
<span class="s0">import </span><span class="s1">java.net.HttpURLConnection</span><span class="s0">;</span>
<span class="s0">import </span><span class="s1">java.net.MalformedURLException</span><span class="s0">;</span>
<span class="s0">import </span><span class="s1">java.net.URL</span><span class="s0">;</span>
<span class="s0">public class </span><span class="s1">FileDownTask </span><span class="s0">extends </span><span class="s1">AsyncTask<String</span><span class="s0">, </span><span class="s1">Integer</span><span class="s0">, </span><span class="s1">String> {</span>
<span class="s0">private </span><span class="s1">ProgressBar pb</span><span class="s0">;</span>
<span class="s0">private </span><span class="s1">TextView tv</span><span class="s0">;</span>
<span class="s0">public </span><span class="s1">FileDownTask(ProgressBar pb</span><span class="s0">,</span><span class="s1">TextView tv) {</span>
<span class="s0">this</span><span class="s1">.pb=pb</span><span class="s0">;</span>
<span class="s0">this</span><span class="s1">.tv=tv</span><span class="s0">;</span>
<span class="s1">}</span>
<span class="s1">@Override</span>
<span class="s0">protected void </span><span class="s1">onPreExecute() {</span>
<span class="s0">super</span><span class="s1">.onPreExecute()</span><span class="s0">;</span>
<span class="s1">pb.setVisibility(View.VISIBLE)</span><span class="s0">;</span>
<span class="s1">}</span>
<span class="s1">@Override</span>
<span class="s0">protected </span><span class="s1">String doInBackground(String... strings) {</span>
<span class="s1">String str=</span><span class="s0">null;</span>
<span class="s0">try </span><span class="s1">{</span>
<span class="s1">URL url=</span><span class="s0">new </span><span class="s1">URL(strings[</span><span class="s2">0</span><span class="s1">])</span><span class="s0">;</span>
<span class="s1">HttpURLConnection coon=(HttpURLConnection) url.openConnection()</span><span class="s0">;</span>
<span class="s0">int </span><span class="s1">totalsize=coon.getContentLength()</span><span class="s0">;</span>
<span class="s0">int </span><span class="s1">currentsize=</span><span class="s2">0</span><span class="s0">;</span>
<span class="s1">InputStream is=coon.getInputStream()</span><span class="s0">;</span>
<span class="s0">byte</span><span class="s1">[] buffer=</span><span class="s0">new byte</span><span class="s1">[</span><span class="s2">2048</span><span class="s1">]</span><span class="s0">;</span>
<span class="s0">int </span><span class="s1">length=</span><span class="s2">0</span><span class="s0">;</span>
<span class="s0">while</span><span class="s1">((length=is.read(buffer))!=-</span><span class="s2">1</span><span class="s1">){</span>
<span class="s1">currentsize=currentsize+length</span><span class="s0">;</span>
<span class="s1">publishProgress((</span><span class="s0">int</span><span class="s1">) ((</span><span class="s0">float</span><span class="s1">)currentsize/totalsize*</span><span class="s2">100</span><span class="s1">))</span><span class="s0">;</span>
<span class="s1">}</span>
<span class="s1">is.close()</span><span class="s0">;</span>
<span class="s1">} </span><span class="s0">catch </span><span class="s1">(MalformedURLException e) {</span>
<span class="s1">e.printStackTrace()</span><span class="s0">;</span>
<span class="s1">} </span><span class="s0">catch </span><span class="s1">(IOException e) {</span>
<span class="s1">e.printStackTrace()</span><span class="s0">;</span>
<span class="s1">}</span>
<span class="s0">return </span><span class="s3">"下载完成"</span><span class="s0">;</span>
<span class="s1">}</span>
<span class="s1">@Override</span>
<span class="s0">protected void </span><span class="s1">onProgressUpdate(Integer... values) {</span>
<span class="s0">super</span><span class="s1">.onProgressUpdate(values)</span><span class="s0">;</span>
<span class="s1">pb.setProgress(values[</span><span class="s2">0</span><span class="s1">])</span><span class="s0">;</span>
<span class="s1">tv.setText(</span><span class="s3">"正在下载中..."</span><span class="s1">)</span><span class="s0">;</span>
<span class="s1">}</span>
<span class="s1">@Override</span>
<span class="s0">protected void </span><span class="s1">onPostExecute(String s) {</span>
<span class="s0">super</span><span class="s1">.onPostExecute(s)</span><span class="s0">;</span>
<span class="s1">tv.setText(s)</span><span class="s0">;</span>
<span class="s1">}</span>
<span class="s1">}</span></pre>
</body>
</html>
没有合适的资源?快使用搜索试试~ 我知道了~
AnsyncTask下载案例
共4个文件
html:3个
xml:1个
需积分: 0 1 下载量 108 浏览量
2022-09-28
10:46:59
上传
评论 1
收藏 3KB RAR 举报
温馨提示
Android 的 UI 线程主要负责处理用户的按键事件、触屏事件等。因此其他阻塞 UI 线程的操作不应该在主线程中操作。为了避免 UI 线程失去响应的问题,Android 程序采用将耗时操作放在新线程中完成的方式,但是新线程可能需要动态更新 UI 组件,比如获取网络资源操作放在新线程中完成。但由于新线程不允许直接更新山 I 组件,为了解决这个问题,Android 提供了异步任务 (AsyncTask) 的方式实现异步线程的操作。
资源详情
资源评论
资源推荐
收起资源包目录
AnsyncTask下载功能.rar (4个子文件)
AnsyncTask下载功能
com
example
myapplication
FileDownTask.java.html 6KB
MainActivity.java.html 3KB
activity_main.xml 1009B
index.html 199B
共 4 条
- 1
ECHK1NG
- 粉丝: 625
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0