OKHttp附件下载实现,进度监听
来源:互联网 发布:欧润网络 编辑:程序博客网 时间:2024/05/14 05:40
1.创建请求request
Request request = new Request.Builder().url(url).build();
2.获取response,由于是耗时操作,所以需要异步获取
new Thread(new Runnable() { @Override public void run() { ... try { Response response = okHttpClient.newCall(request).execute(); if (!response.isSuccessful() || response == null || response.body() == null) { sendMessage(1, 0, 0, ""); } else { //处理response ... } } catch (IOException e) { e.printStackTrace(); sendMessage(1, 0, 0, ""); } } }).start();
3.处理获取的response,并进行进度监听
InputStream is = null;byte[] buf = new byte[2048];int len = 0;FileOutputStream fos = null;try { is = response.body().byteStream(); int last = 0; final long total = response.body().contentLength(); long sum = 0; fos = new FileOutputStream(new File(apkPath)); while ((len = is.read(buf)) != -1) { sum += len; fos.write(buf, 0, len); int now = (int) (sum * 100 / total); if (last < now) { LogUtils.d("current:" + last + ";total:" + 100); sendMessage(3, last, 100, ""); last = now; } } fos.flush(); sendMessage(2, 0, 0, "");} catch (IOException e) { e.printStackTrace(); sendMessage(1, 0, 0, "");} finally { try { if (is != null) { is.close(); } } catch (IOException e) { e.printStackTrace(); } try { if (fos != null) { fos.close(); } } catch (IOException e) { e.printStackTrace(); }}
4.通知主线程进行相应的处理
public void sendMessage(int what, long current, long total, String msg) { Message message = Message.obtain(); message.what = what; message.arg1 = (int) current; message.arg2 = (int) total; message.obj = msg; handler.sendMessage(message); } private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case 1: //下载失败 ... break; case 2: //下载成功 ... break; case 3: //下载进度 int current = msg.arg1; int total = msg.arg2; ... break; } } };
0 0
- OKHttp附件下载实现,进度监听
- 使用OkHttp实现下载的进度监听和断点续传
- 一行代码实现Okhttp,Retrofit,Glide下载上传进度监听
- 一行代码实现Okhttp,Retrofit,Glide下载上传进度监听
- 一行代码实现Okhttp,Retrofit,Glide下载上传进度监听
- OKHttp上传图片实现,进度监听
- Android OkHttp文件上传与下载的进度监听扩展
- OkHttp资料推荐 和 下载进度监听开源
- Android OkHttp文件上传与下载的进度监听扩展
- Android OkHttp文件上传与下载的进度监听扩展
- Android OkHttp文件上传与下载的进度监听扩展
- Android OkHttp文件上传与下载的进度监听扩展
- OkHttp文件下载并通过Interceptor实现下载进度
- OkHttp 使用 get post UI线程回调 上传 下载 进度监听 更好地封装
- OKHttp 数据读写进度监听分析
- android中DownloadManager实现版本更新,监听下载进度实例
- OkHttp实现文件上传进度
- 使用OKHttp上传、下载文件记录进度
- H264视频通过RTMP直播
- VC包含目录、附加依赖项、库目录及具体设置
- 31. Next Permutation
- 20160224 mystrcat
- Android Stuido Ndk-Jni 开发(一):创建简单的JniDemo
- OKHttp附件下载实现,进度监听
- 内存不足卸载软件时,什么样的APP会被用户留下?
- do while(0)的妙处
- 5. Longest Palindromic Substring
- 使用nginx针对URL实现负载均衡或者说接口定向分发
- UVA 147 Dollars
- JavaScript之IE的fireEvent方法详细解析
- 如何使用Gmail的别名功能?
- Git用法之撤销操作