ListView嵌套Gallery Gallery的多线程更新思路
书柜形式(ListView嵌套Gallery)的每本书的进度条更新思路:
1、完成多线程、断点续传的下载器的编写;
2、使用服务来启动下载任务,继承Service;若继承IntentService,其中的OnHandleIntent方法一次只能处理一个Intent,当Intent结束后再顺序处理下一个Intent;
3、通过广播更新界面
由于ListView嵌套Gallery,所以在ListAdapter中的Gallery.setOnClickItemListener中,对当前任务状态进行判断,未曾下载、下载中、暂停,做出不同的反应。然后在GalleryAdapter中加入广播接收器,对当前的Gallery进行更新。
由于是多任务下载,所以意为着要申明一个全局变量,用于记录”行、列、进度“,类型为Map<String,Map<Integer,Integer>>。启动任务的时候,将行列的值通过Intent传入Service中,然后再在Service中传入下载器中,最后在下载器的监听器中暴露出来,将行、列和进度一起通过广播传给接收器。在GalleryAdapter的getView中对全局变量进行判断显示进度条。
剩余问题:如何暂停某一个下载器的下载任务??主要问题在于如何获得自定义Service类的对象。
效果如图: