Android多线程下载
有关于断点下载,值得下载你的例子! public class DownloadActivity extends Activity { private ProgressBar downloadbar; private EditText pathText; private TextView resultView; private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { switch (msg.what) { case 1: int size = msg.getData().getInt("size"); downloadbar.setProgress(size); float result = (float)downloadbar.getProgress()/ (float)downloadbar.getMax(); int p = (int)(result*100); resultView.setText(p+"%"); if(downloadbar.getProgress()==downloadbar.getMax()) Toast.makeText(DownloadActivity.this, R.string.success, 1).show();//下载完成提示 break; case -1: Toast.makeText(DownloadActivity.this, R.string.error, 1).show(); //下载失败提示 break; } } }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button button = (Button)this.findViewById(R.id.button); downloadbar = (ProgressBar)this.findViewById(R.id.downloadbar); pathText = (EditText)this.findViewById(R.id.path); resultView = (TextView)this.findViewById(R.id.result); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String path = pathText.getText().toString(); if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ File dir = Environment.getExternalStorageDirectory();//文件保存目录 System.out.println("文件保存目录=="+dir); download(path, dir); }else{ Toast.makeText(DownloadActivity.this, R.string.sdcarderror, 1).show();//存贮路径不存在,则淡出提示 } } }); } //对于UI控件的更新只能由主线程(UI线程)负责,如果在非UI线程更新UI控件,更新的结果不会反映在屏幕上,某些控件还会出错 private void download(final String path, final File dir){ new Thread(new Runnable() { @Override public void run() { try { FileDownloader loader = new FileDownloader(DownloadActivity.this, path, dir, 3); int length = loader.getFileSize();//获取文件的长度 downloadbar.setMax(length); loader.download(new DownloadProgressListener(){ @Override public void onDownloadSize(int size) {//可以实时得到文件下载的长度 Message msg = new Message(); msg.what = 1; msg.getData().putInt("size", size); handler.sendMessage(msg); }}); } catch (Exception e) { Message msg = new Message(); msg.what = -1; msg.getData().putString("error", "文件下载失败"); handler.sendMessage(msg); } } }).start(); }
- 1
- 粉丝: 0
- 资源: 23
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 解析机器人_安卓.apk
- 基于matlab实现的关于雷达恒虚警检测一些问题的程序仿真.rar
- 基于matlab实现的函数-对滑动轴承由油膜剪切力产生的摩擦力用matlab进行求解.rar
- 基于matlab实现的滑动轴承的雷诺方程求解与偏心率和承载能力的关系.rar
- 整理2010-2020年各省农村居民消费价格指数
- 基于matlab实现的基于粒子群算法的交通路径研究matlab源程序时间窗车辆路径规划PSO-VRPTW.rar
- 基于matlab实现的雷达的恒虚警检测技术,二维cfar,采用十字形取数法.rar
- 基于matlab实现的雷达的恒虚警检测程序,这里你可以进行雷达信号的恒虚警检测.rar
- 基于matlab实现的雷达CFAR恒虚警检测二维信号仿真
- 基于matlab实现的计算无量纲非线性油膜力,无量纲形势的函数,易于调用,滚动轴承支撑的碰磨转子.rar
- 1
- 2
前往页