<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>
评论0