Open bizhiwei opened 8 years ago
这是个bug,数据库获取的task和实际队列中的不一样,将会更新代码修复这个bug
zechao,我这边在做安卓应用市场(类似豌豆荚那种),涉及到多个页面需要同时显示应用下载进度 ,暂停时多个页面也需要联动暂停,点继续又可以恢复下载切多个页面也要同步 ;试了一下DownloadManager 下载一个10几M的文件,下载2M 、4M的时候老是断开,不知为何;
我用这个一般下载十几M的时候都没啥问题,你可以当前Activity实现listener接口,onDestory的时候把listener移除,这样可以避免内存泄漏。还有就是有可能你在listener里面做了耗时的操作,这样会影响文件的写入,因为回调是在写入过程调用的。
我这边做一个应用下载功能模块,有些问题请教下,比如说listview中的item上有一个下载按钮,点击下载,下载进行,同时我有点击整个当前item进入详情页面里面有同样的可点击下载并且item详情进度要和上面的进度一致,包括我的另一个fragment中下载管理同样有下载中的任务和同步的进度显示,其中一个点击暂停或继续所有的页面包括item详情都是相同的状态,急求,万分感谢!
放弃使用监听,改成
holder.view.post(new Runnable() { @Override public void run() { finalHolder.lcProgress.postDelayed(this, 800); } });
item中的view循环去获取当前的下载进度
跟数据库和模型的耦合性太强了,不好拆分,建议把下载线程的数据库操作去掉,只传地址与下载进度,其他操作在manager里操作
@qxwzyxxx 感谢提议,我会考虑的
downloadManager.loadAllDownloadTaskFromDB(),我用这个方法获取的task,但是给他设置监听不起作用,不知道为什么