现在的图片缓存我是这么做的:
1.先检查本地是否存在,存在的话直接设置src
- 如果本地不存在则plus.downloader下载
问题: 列表中有很多图片,类似微信朋友圈,大概20张,这样downloader一下子就创建了20个线程,导致手机一下子就发烫了.Android手机
downloadder内部线程管理机制是怎么样的呢 有使用线程池吗?能设置运行的线程数吗?比如设置运行的线程总数就3个,其他下载任务等待,如果能这样就解决了手机发烫的问题
现在不知道怎么设置,所以想换个思路,除了downloader把图片下载到本地,还有其他方法吗?Canvas画也比较麻烦,不知道怎么监听src的图片url加载完图了~~(>_<)~~
还没试过用ajax请求图片,下载..
2 个回复
蔡繁荣 - 发表是最好的记忆
你可以自己内部作管理啊,入队列,慢慢下载
DCloud_App_Array
Downloader模块内部是有线程池的,但线程池无法避免下载任务导致的手机发烫问题,比如设置了20个下载任务,Downloader还是会下载全部20个任务。
避免这种问题的思路有:
wenju (作者)
亲, 20个下载任务,并不是20个线程,所以像AFinal图片加载框架一样 可以设置真正执行下载任务的线程数,比如只有3个线程执行下载,其余任务的等待..这样就有效解决了发烫的问题
2015-07-28 16:23
wenju (作者)
Downloader在初始化的时候可以传个参数设置执行任务的线程数就好了 ,我看文档没有发现在哪设置
2015-07-28 16:24
DCloud_App_Array
目前是内部逻辑处理的,限定并发5个线程下载,当一个任务下载结束后线程结束才会起新的线程下载新任务。
2015-07-28 16:33
wenju (作者)
回复 DCloud_App_Array:好的 谢谢 因为我这个需求像朋友圈类似,进来的时候,最少展示2条动态吧,每个动态有9个照片,包括用户头像 都20张图了,服务器压缩的图一张50k到100k已经挺小了;除了Downloader还有其他方式缓存图片到本地 然后手机不发烫呢
2015-07-28 16:43