Fel*_*lix 6 java android universal-image-loader
我正在使用UIL(由Nosotra)下载服务器渲染的图像,并且服务器最多需要50秒来创建每个图像.服务器的超时设置为15秒,因此我们创建了一个在ImageDownloader.getStream()方法中实现的轮询机制.下载后,图像将显示在ViewPager中(android.support.v4.view.ViewPager就像样本一样).
当用户导航到其他页面时,我希望在不下载文件的情况下停止轮询,但似乎没有" 好 "方法来打破下载流程.
getStream伪代码
1. Parse custom-style URI ("asdf://mypng|123455678945643563245");
2. Make a real world URL from it.
3. Poll the server for the image url (causes the server to render - could take up to 1m30s).
4. Get the stream from the URL, return the stream to caller.
Example Code: InputStream is = (InputStream) url.getContent();
Run Code Online (Sandbox Code Playgroud)
到目前为止尝试了什么
null从我的getStream方法返回会导致NullPointerException抛出,所以它与抛出异常基本相同.
抛出异常时,图像会停止,但是:
OutOfMemoryError,所以我在屏幕上显示错误.我不应该得到错误.我已经尝试过这个SO问题的清单,但没有任何效果.这是OOM Stacktrace:
我希望如何
我希望我能有这将增加停止当前的下载和新的任务重新添加到队列中(目前在上一集的结尾"等待"的方法QueueProcessingType.LIFO,我希望它来下载重新添加后后当前页面和用户想要的任何新页面应优先于重新添加的页面.
我也会满足于避免OutOfMemoryError.
请帮忙.
问题可能出在这里 4. 下载图像,返回流。下载——这是UIL的主要功能。只需在此处返回 NetworkStream 即可。另外,我在使用大图像并启用 MemoryCache 的 UIL 上出现 OOM。还有服务器上的图像尺寸是多少。在加载图像方法中,您可以控制大小。UIL GitHub也很有帮助,请阅读第 3 和第 4 段。
| 归档时间: |
|
| 查看次数: |
336 次 |
| 最近记录: |