CCDownloader安卓版本的bug

转:http://forum.cocos.com/t/ccdownloader-bug/44932

cocos2dx自己实现的热更机制里使用了CCDownloader, 但是自带的热更并不灵活。 所以做项目一般都会自己实现一份。 但是直接用HttpRequest的话, 多线程下载支持的并不好。 所以把CCDownloader导出到lua, 给我们自己的热更模块使用。

在使用的过程中发现一个问题——当创建的任务数大于CCDownloader的线程数时, 而任务类型又是DataTask时, CCDownloader只能下载n个文件 然后没有然后了, 其中n=线程数。 CCDownloader默认是6线程的。 我们的热更分2种, 其中一种是后台静默下载, 为了保证流畅性, 静默下载只使用了一个线程。 这导致我们创建了n个任务后, 下载了一个文件就停止了。

解决方案:Cocos2dxDownloader.java里的FileTaskHandler重载了onFinish 并且调用了 _downloader.runNextTaskIfExists(); 而DataTaskHandler并没有重载onFinish 。 直接在DataTaskHandler加上
@Override
public void onFinish() {
// onFinish called after onSuccess/onFailure
_downloader.runNextTaskIfExists();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值