![](/img/trans.png)
[英]Android - ImageLoader must be init with configuration before using in UIL
[英]Using Android-UIL, How to stop downloading?
我正在使用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();
到目前为止尝试了什么
从我的getStream
方法返回null
会导致抛出NullPointerException
,因此它与抛出异常基本相同。
抛出异常时,图像会停止,但是:
OutOfMemoryError
,所以我在屏幕上显示错误。 我不应该得到错误。 我已经尝试过这个SO问题的清单 ,但没有任何效果。 这是OOM Stacktrace: 我希望如何
我希望我有一个“等待”方法,可以添加停止当前下载并重新添加一个新任务到队列的末尾(当前在QueueProcessingType.LIFO
上设置,我希望它下载re-当前页后之后 ,并且将用户需要的任何新页面应该对重新加入的人优先)。
我也愿意避免OutOfMemoryError
。
请帮忙。
问题可能在这里4.下载图像,返回流。 下载 - 这是UIL的主要特色。 只需在这里返回NetworkStream即可。 我还在UIL上使用大图像和启用了MemoryCache。 您在服务器上也有哪个图像大小。 在加载Image方法中,您可以控制Size。 另外如此有用的UIL GitHub请阅读3和4段。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.