android文件下载及进度条.docx
《android文件下载及进度条.docx》由会员分享,可在线阅读,更多相关《android文件下载及进度条.docx(11页珍藏版)》请在三一办公上搜索。
1、android 文件下载及进度条Android sdk 3.0 编译通过 package com.download; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import .URL; import .URLConnection; import org.apache.http.client.ClientProtocolException; import android.app.Activity; import andr
2、oid.os.Bundle; import android.os.Environment; import android.os.Handler; import android.os.Message; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ProgressBar; import android.widget.TextView; import and
3、roid.widget.Toast; public class AndroidDownLoadActivity extends Activity private Button DownloadTextButton = null; private Button DownloadMp3Button = null; ProgressBar pb; TextView tv; int fileSize; int downLoadFileSize; String fileEx, fileNa, filename; private Handler handler = new Handler Override
4、 public void handleMessage(Message msg) / 定义一个Handler,用于处理下载线程与UI间通讯 if (!Thread.currentThread.isInterrupted) ; switch (msg.what) case 0: pb.setMax(fileSize); case 1: pb.setProgress(downLoadFileSize); int result = downLoadFileSize * 100 / fileSize; tv.setText(result + %); break; case 2: Toast.makeTe
5、xt(AndroidDownLoadActivity.this, 文件下载完成, 1) .show; break; case -1: String error = msg.getData.getString(error); Toast.makeText(AndroidDownLoadActivity.this, error, 1) .show; break; super.handleMessage(msg); /* * down load file to sdcard. */ public void down_file(String url, String path) throws IOExc
6、eption / 下载函数 filename = url.substring(url.lastIndexOf(/) + 1); / 获取文件名 URL myURL = new URL(url); URLConnection conn = myURL.openConnection; conn.connect; InputStream is = conn.getInputStream; this.fileSize = conn.getContentLength;/ 根据响应获取文件大小 Log.i(value, length = + this.fileSize); if (this.fileSiz
7、e = 0) throw new RuntimeException(无法获知文件大小 ); if (is = null) throw new RuntimeException(stream is null); File file = new File(Environment.getExternalStorageDirectory, filename); FileOutputStream fos = new FileOutputStream(file); / 把数据存入路径+文件名 byte buf = new byte1024; downLoadFileSize = 0; sendMsg(0)
8、; do / 循环读取 int numread = is.read(buf); if (numread = -1) break; fos.write(buf, 0, numread); downLoadFileSize += numread; sendMsg(1);/ 更新进度条 while (true); sendMsg(2);/ 通知下载完成 try is.close; catch (Exception ex) Log.e(tag, error: + ex.getMessage, ex); private void sendMsg(int flag) Message msg = new M
9、essage; msg.what = flag; handler.sendMessage(msg); /* Called when the activity is first created. */ Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); private class DownTextButtonListener implements OnClickListener public void
10、onClick(View v) super.onCreate(savedInstanceState); setContentView(R.layout.main); pb = (ProgressBar) findViewById(R.id.down_pb); tv = (TextView) findViewById(R.id.tv); new Thread public void run try down_file( .start; http:/下载路径 , /sdcard/); / 下载文件,参数:第一个URL,第二个存放路径 catch (ClientProtocolException e
11、) / TODO Auto-generated catch block e.printStackTrace; catch (IOException e) / TODO Auto-generated catch block e.printStackTrace; DownloadTextButton = (Button) findViewById(R.id.DownTextButtonId); DownloadTextButton.setOnClickListener(new DownTextButtonListener); DownloadMp3Button = (Button) findVie
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- android 文件下载及进度条 文件 下载 进度条

链接地址:https://www.31ppt.com/p-3152473.html