duzechao / DownloadManager

一个下载框架/a download library
275 stars 77 forks source link

不同页面获取的task不能实现监听 #7

Open bizhiwei opened 8 years ago

bizhiwei commented 8 years ago

downloadManager.loadAllDownloadTaskFromDB(),我用这个方法获取的task,但是给他设置监听不起作用,不知道为什么

duzechao commented 8 years ago

这是个bug,数据库获取的task和实际队列中的不一样,将会更新代码修复这个bug

James6xie commented 8 years ago

zechao,我这边在做安卓应用市场(类似豌豆荚那种),涉及到多个页面需要同时显示应用下载进度 ,暂停时多个页面也需要联动暂停,点继续又可以恢复下载切多个页面也要同步 ;试了一下DownloadManager 下载一个10几M的文件,下载2M 、4M的时候老是断开,不知为何;

duzechao commented 8 years ago

我用这个一般下载十几M的时候都没啥问题,你可以当前Activity实现listener接口,onDestory的时候把listener移除,这样可以避免内存泄漏。还有就是有可能你在listener里面做了耗时的操作,这样会影响文件的写入,因为回调是在写入过程调用的。

jjzuo commented 8 years ago

我这边做一个应用下载功能模块,有些问题请教下,比如说listview中的item上有一个下载按钮,点击下载,下载进行,同时我有点击整个当前item进入详情页面里面有同样的可点击下载并且item详情进度要和上面的进度一致,包括我的另一个fragment中下载管理同样有下载中的任务和同步的进度显示,其中一个点击暂停或继续所有的页面包括item详情都是相同的状态,急求,万分感谢!

duzechao commented 8 years ago

放弃使用监听,改成 holder.view.post(new Runnable() { @Override public void run() { finalHolder.lcProgress.postDelayed(this, 800); } }); item中的view循环去获取当前的下载进度

qxwzyxxx commented 8 years ago

跟数据库和模型的耦合性太强了,不好拆分,建议把下载线程的数据库操作去掉,只传地址与下载进度,其他操作在manager里操作

duzechao commented 8 years ago

@qxwzyxxx 感谢提议,我会考虑的