结合AsyncTask 下载文件
2016-07-27 18:07
176 查看
实现步骤:
SD卡路径:
Environment.getExternalStorageDirectory().getAbsolutePath()+“/”
注意添加权限: 网络权限 写入SD卡权限
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
模拟手机助手
还未下载时,按钮显示下载 可点击
下载过程中 ,显示正在下载 不可点击
下载完成 , 下载完成 可点击
实现步骤:
1.// 创建容器 保存文件地址
ArrayList<String> filePathList = new ArrayList<String>();
2.获得文件名
3.点击按钮启动异步任务下载文件
常见错误:
下载失败:下载地址 保存地址出错 查看橙色日志 警告日志 warn
保存地址出错
问题1:下载完成后,滑动Listview,还没下载的行显示下载完成
原因:复用行布局造成的
解决:根据下载状态 设置默认值
创建容器保存下载状态
还未下载时, null
下载过程中 false doInbackground
下载完成 true onPostExecute
//1.保存下载状态
HashMap<Integer, Boolean> stateMap=new HashMap<>();
2.保存下载状态的时机
3.getview()根据下载状态设置默认值
问题2,下载过程中,缓慢滑动Listview,还没下载的行显示下载进度
原因:复用行布局造成,task1,更新同一个控件
解决:下载过程中 ,在可行更新控件
问题3:下载过程中,快速滑动Listview ,下载进度串行
原因: 无规律复用 行布局
解决:创建方法更最新控件
SD卡路径:
Environment.getExternalStorageDirectory().getAbsolutePath()+“/”
注意添加权限: 网络权限 写入SD卡权限
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
模拟手机助手
还未下载时,按钮显示下载 可点击
下载过程中 ,显示正在下载 不可点击
下载完成 , 下载完成 可点击
实现步骤:
1.// 创建容器 保存文件地址
ArrayList<String> filePathList = new ArrayList<String>();
2.获得文件名
3.点击按钮启动异步任务下载文件
常见错误:
下载失败:下载地址 保存地址出错 查看橙色日志 警告日志 warn
保存地址出错
问题1:下载完成后,滑动Listview,还没下载的行显示下载完成
原因:复用行布局造成的
解决:根据下载状态 设置默认值
创建容器保存下载状态
还未下载时, null
下载过程中 false doInbackground
下载完成 true onPostExecute
//1.保存下载状态
HashMap<Integer, Boolean> stateMap=new HashMap<>();
2.保存下载状态的时机
3.getview()根据下载状态设置默认值
问题2,下载过程中,缓慢滑动Listview,还没下载的行显示下载进度
原因:复用行布局造成,task1,更新同一个控件
解决:下载过程中 ,在可行更新控件
问题3:下载过程中,快速滑动Listview ,下载进度串行
原因: 无规律复用 行布局
解决:创建方法更最新控件
相关文章推荐
- Red packet (二分)
- 朋友安利我的一本书“只有偏执狂才能成功”
- AngularJs1.X 项目文件结构
- OpenStack Mitaka 创建VM 报错:Cannot findsuitable emulator for x86_64
- WordCount运行详解
- spring 配置触发器
- 【poj3258】River Hopscotch
- 各类容器迭代器失效情况
- 找到100亿个URL中的重复URL以及搜索词汇的topK问题
- C# “试图访问已释放的资源”
- Sublime Text 3总是出现“1 missing dependency was just installed.”
- Request的getParameter和getAttribute方法的区别
- 324. Wiggle Sort II 摆动排序
- MA5889,奇岩MA5889,USB智能识别充电(双通道)解决方案
- 第四天
- 线程间通讯
- 【技术贴】ArcGIS Runtime for Xamarin入门教程-调用矢量切片
- Android 一个改善的okHttp封装库
- URL编码 百分号编码和解码 URLEncoder和URLDecoder的大致实现原理
- android studio 调试技巧(简直太好用)