Android Ion 框架 文件下载
为什么80%的码农都做不了架构师?>>>
ion是的一个安卓异步网络和图片加载库。
特性
异步下载:
下载图片 (用ImageViews 或者 Bitmaps显示);
下载JSON文件 (通过Gson解析);
下载字符串;
下载文件;
Fluent API;
当呼叫活动(calling Activity)结束时,可以自动取消网络操作。
所有的操作都返回一个Future(http://en.wikipedia.org/wiki/Futures_and_promises),并且可以取消;
HTTP POST/PUT;
缓存;
Gzip/Deflate 压缩
当有多个IP地址时,自动选择最好最稳定的服务器连接; 9. 支持Cookies 等等。
Github 项目地址为: ion github
Eclipse jar包导入形式:
需要使用到两个jar 分别为: androidasync.jar 和 Ion.jar
个人测试 下载文件部分代码如下:
public static void NewDownload(RequestParams params,final Context mcontext,final BaseInfo t){progressBar = new ProgressBar(mcontext);progressDialog = new ProgressDialog(mcontext);LogCat.i(Constants.getLogTag(), Constants.getRequestHost()+t.getDownloadUrl());final NotificationManager nm = (NotificationManager) mcontext.getSystemService(Context.NOTIFICATION_SERVICE);final Notification.Builder builder = new Notification.Builder(mcontext);builder.setWhen(System.currentTimeMillis()).setContentTitle(t.getName()+ "下载中").setContentText(t.getVersionName());builder.setLargeIcon(bitmap);builder.setSmallIcon(R.drawable.download_icon);File file = Environment.getExternalStorageDirectory();File file2 = new File(file, "down");file2.mkdir();file2 = new File(file2,t.getName()+ ".apk");Ion.with(mcontext).load(Constants.getRequestHost()+t.getDownloadUrl()).progressBar(progressBar).progressDialog(progressDialog).progress( new ProgressCallback() {@Overridepublic void onProgress( long downloaded, long total) {builder.setProgress(( int)(total/(1024*1024)), (int)downloaded/(1024*1024), false);builder.setContentText(downloaded/(1024*1024)+ "."+downloaded%(1024*1024)+ "M"+ " / " + (total/(1024*1024))+"."+(total%(1024*1024))+"M" );Intent intent = new Intent(mcontext,DownloadingActivity.class );Bundle bundle = new Bundle();bundle.putLong( "downloaded", downloaded);bundle.putLong( "total", total);bundle.putSerializable( "appInfo", t);intent.putExtras(bundle);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);PendingIntent pendintent= PendingIntent.getActivity(mcontext, Notification_id, intent, PendingIntent.FLAG_UPDATE_CURRENT);builder.setContentIntent(pendintent);Notification notification = builder.getNotification();nm.notify(Notification_id, notification);}}).write(file2).setCallback( new FutureCallback<File>() {@Overridepublic void onCompleted(Exception e, File file) {if (e == null) {AppUtil.install(mcontext, Environment.getExternalStorageDirectory()+File.separator+"down" +File.separator+t.getName()+".apk");nm.cancel(Notification_id);} else{Utils.showToast(mcontext, "下载失败,请稍后重试" );nm.cancel(Notification_id);}}});}
根据请求,使用Notification的形式动态展示 当前下载进度展示,并设定了 PendingIntent ,点击Notification时,跳转特定页面,并展示当前下载进度。
转载于:https://my.oschina.net/leov1/blog/506451
Android Ion 框架 文件下载相关推荐
- android 常用框架整理
文章目录 UI 框架 WebView 框架 具体内容 UI 卫星菜单 节选器 下拉刷新 模糊效果 HUD与Toast 进度条 UI其他 动画 网络相关 网络连接 网络测试 图像获取 响应式编程 地图 ...
- Android 开源框架精选
1. github排名 https://github.com/trending,github搜索:https://github.com/search 2.https://github.com/wasa ...
- Android流行框架(二)
第一部分 个性化控件(View) 主要介绍那些不错个性化的 View,包括 ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.P ...
- android最新框架,XUpdate 一个轻量级、高可用性的Android版本更新框架
XUpdate 一个轻量级.高可用性的Android版本更新框架.赶紧点击使用说明文档,体验一下吧! 特点 支持post和get两种版本检查方式,支持自定义网络请求. 支持设置只在wifi下进行版本更 ...
- android开发关掉发现更新的官方版本,XUpdate:轻量级、高可用性的 Android 版本更新框架...
一个轻量级.高可用性的Android版本更新框架 关于我 特点 支持post和get两种版本检查方式,支持自定义网络请求. 支持设置只在wifi下进行版本更新. 支持静默下载.自动版本更新. 提供界面 ...
- android图形框架之surfaceflinger分析(一)
1. 概念 surfaceflinger作用是接受多个来源的图形显示数据,将它们合成,然后发送到显示设备.比如打开应用,常见的有三层显示,顶部的statusbar底部或者侧面的导航栏以及应用的界面,每 ...
- 2017年Android百大框架排行榜
>随意转载,标注作者"金诚"即可 >本文已经开源到Github上,欢迎各位共同编辑.参与到榜单的建设中来 >Github 地址 一.榜单介绍 排行榜包括四大类: ...
- 【Android学习】Android常用框架
1,缓存 1)DiskLruCache Java实现基于LRU的磁盘缓存. 2,图片 1)Glide(已使用) ①概念 图片加载. Glide 支持拉取,解码和展示视频快照,图片,和GIF动画. ② ...
- android之ion内存储器管理器,Android ION
场景:android之ION内存储器管理器(1)- 简介 android之ION内存管理器(1)-- 简介 by JHJ(jianghuijun211@gmail.com) 为什么需要ION 回顾20 ...
最新文章
- 关于dell - R710的磁盘管理
- Scala教程之:PartialFunction
- slope one算法matlab,求助我这个寻峰算法该怎么提高灵敏度
- oracle数据库导出和oracle导入数据的二种方法(oracle导入导出数据)
- 将一个字段的多个记录值合在一行
- python 入门基础-零基础入门Python,看这一篇就够了!
- ddwrt 扩张linux分区,『2010.8.9』DDWRT脱机下载+架设网站修正加强版tar.gz模式发布(修复下载地址)...
- VS编译时自动引用Debug|Release版本的dll
- git 远程仓库 remote 使用总结
- Luogu P2525题解
- SEO黑帽寄生虫快排的生成原理及做法[详解]
- 微信小程序 input、picker组件
- DNA测序也有批次效应?
- 双离合档把上按钮作用_双离合怎么换挡图解,7速双离合档位示意图
- 停车还能360全方位影像_新款途锐2.0版、3.0版均能升级的原厂360全景影像及盲点辅助系统...
- kubernetes cordon原理
- Oracle裁员,N+6赔偿,你只看到幸福感?
- 编程软件GX Works2入门:基本功能名词简述
- PB控件:Graph图形控件
- 怎样才能上传百度文库,上传百度文库的操作步骤和技巧
热门文章
- 《剑指offer》全解(图文结合,通俗易懂,一篇看爽)
- leetcode44. 通配符匹配 又是一道没有解释的字符串dp困难题
- java int 包_int readInt()
- 为什么说选择正确的编程语言很重要,以及如何正确的选择
- 专访阿里云总裁王文彬:做出“用得爽”的工程产品
- C语言extern关键词—最会带帽子的关键字
- 工作流 activity 视频教程 + redis 视频教程 百度网盘分享地址
- 我爱学习第一天(委托)
- 实现一个用户取过的数据不被其他用户取到
- Python 删除满足条件的某些行