实现步骤:


SD卡路径:

Environment.getExternalStorageDirectory().getAbsolutePath()+“/”

注意添加权限: 网络权限 写入SD卡权限

<uses-permissionandroid:name="android.permission.INTERNET"/>

<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>


模拟手机助手



还未下载时,按钮显示下载 可点击

下载过程中 ,显示正在下载 不可点击

下载完成 , 下载完成 可点击

实现步骤:

1.//创建容器保存文件地址

ArrayList<String>filePathList=newArrayList<String>();

2.获得文件名

3.点击按钮启动异步任务下载文件


常见错误:

下载失败:下载地址 保存地址出错 查看橙色日志 警告日志 warn

保存地址出错


问题1:下载完成后,滑动Listview,还没下载的行显示下载完成

原因:复用行布局造成的

解决:根据下载状态 设置默认值

创建容器保存下载状态

还未下载时, null

下载过程中 false doInbackground

下载完成 true onPostExecute

//1.保存下载状态

HashMap<Integer,Boolean>stateMap=newHashMap<>();

2.保存下载状态的时机

3.getview()根据下载状态设置默认值


问题2,下载过程中,缓慢滑动Listview,还没下载的行显示下载进度

原因:复用行布局造成,task1,更新同一个控件

解决:下载过程中 ,在可行更新控件



问题3:下载过程中,快速滑动Listview ,下载进度串行

原因: 无规律复用 行布局

解决:创建方法更最新控件