下载状态

来源:互联网 发布:幼儿教育软件哪个好 编辑:程序博客网 时间:2024/04/28 06:38
package com.example.downloaddemo1409g;import java.io.File;import com.lidroid.xutils.HttpUtils;import com.lidroid.xutils.exception.HttpException;import com.lidroid.xutils.http.HttpHandler;import com.lidroid.xutils.http.ResponseInfo;import com.lidroid.xutils.http.callback.RequestCallBack;import android.app.Activity;import android.os.Bundle;import android.text.format.Formatter;import android.view.View;import android.widget.ProgressBar;import android.widget.TextView;public class MainActivity extends Activity {private static final String URL = "http://dldir1.qq.com/qqfile/qq/QQ8.4/18380/QQ8.4.exe";// 用于显示 下载量/总的大小private TextView mTv;// 进度条private ProgressBar mPb;private long mTotal;//文件总大小//HttpUtils相关private HttpUtils mHttp;private HttpHandler<File> mDownloadHandler;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 创建HttpUtils对象mHttp = new HttpUtils();// 查找viewinitView();// 添加事件initEvent();// 开始下载startDownload();}private void initEvent() {mTv.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {boolean isCancelled = mDownloadHandler.isCancelled();if (isCancelled) {// 暂停状态时,点击继续下载startDownload();} else {// 正在下载状态时,点击后取消下载mDownloadHandler.cancel();}}});}private void initView() {mTv = (TextView) findViewById(R.id.tv);mPb = (ProgressBar) findViewById(R.id.pb);// 设置最大值100mPb.setMax(100);}private void startDownload() {mDownloadHandler = mHttp.download(URL, "/mnt/sdcard/qq.exe", true, true, new RequestCallBack<File>() {@Overridepublic void onLoading(long total, long current, boolean isUploading) {mTotal = total;// 下载过程中String totalSize = Formatter.formatFileSize(MainActivity.this, total);// 格式化文件大小String currentSize = Formatter.formatFileSize(MainActivity.this, current);// 显示 下载量/总的大小mTv.setText(currentSize + "/" + totalSize);// 计算并显示进度值int percent = (int) (current * 100 / total);mPb.setProgress(percent);}@Overridepublic void onSuccess(ResponseInfo<File> responseInfo) {// 下载成功if (responseInfo.result.length() == mTotal) {mTv.setText("下载完成");}}@Overridepublic void onFailure(HttpException error, String msg) {// 下载失败mTv.setText("下载失败");}});}}

0 0
原创粉丝点击