gpt4 book ai didi

android - 确定 BitmapFactory.decodeStream() 是否成功且没有错误

转载 作者:太空狗 更新时间:2023-10-29 15:00:41 24 4
gpt4 key购买 nike

我在 AsyncTask 中使用 BitmapFactory.decodeStream() 从 Internet 下载位图。在我的应用程序中,我有一个图像 ListView ,我只想下载用户可以看到的位图,并取消所有对用户滚动通过的位图的下载请求。下载完成后,我将位图缓存起来,这样就不必再次下载了。要取消位图下载,我调用了 AsyncTask.cancel(true)

问题是有时 BitmapFactory.decodeStream() 会输出一个警告,指出发生了 InterruptedIOException(因为我在下载任务时取消了它)但它实际上不会抛出异常。通常发生这种情况时,该函数会返回半载位图。不幸的是,由于返回的位图不为空,因此应用程序假设下载成功并缓存了这个下载一半的位图。从这时起,用户将一直停留在加载了一半的位图上,直到缓存被清除。

所以我的问题是,有没有办法检查 BitmapFactory.decodeStream() 是否真的成功下载了位图?

最佳答案

尽管我没有想出一种方法来判断 BitmapFactory.decodeStream() 是否完成且没有错误,但我确实找到了解决方法。我只是在调用 BitmapFactory.decodeStream() 之前和调用 BitmapFactory.decodeStream() 之后检查任务是否已被取消,以确定在 期间任务是否已被取消>BitmapFactory.decodeStream() 调用。如果有,我只是假设 BitmapFactory.decodeStream() 失败(它可能已经失败)并执行必要的清理代码以确保位图永远不会进入缓存。

关于android - 确定 BitmapFactory.decodeStream() 是否成功且没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27147237/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com