【发布时间】:2018-09-23 19:09:07
【问题描述】:
我想使用 Glide 急切地下载图像并将它们缓存在磁盘上以备将来使用。我想从后台线程调用此功能。
我已经阅读了Glide's caching documentation,但它没有解释如何在没有实际目标的情况下下载图像。然后我找到了this issue 并尝试使用类似的方法,但无论我尝试什么,我都会得到这个异常:
java.lang.IllegalArgumentException: You must call this method on the main thread
那么,如何让 Glide 缓存来自后台线程的图像?
编辑:我真的很想在后台线程上调用 Glide 的方法。我知道我可以使用 Handler 和其他方式将其卸载到 UI 线程,但这不是我要问的。
【问题讨论】:
-
为什么不下载 ImageURLs 并将其存储在 Room DB 中,并且您可以随时从该 DB 加载图像。
-
@UmangBurman,将图像存储在数据库中是一个坏主意(就像存储任何其他大型二进制对象一样)。我可以下载图像,将其存储在本地并保留本地 URI,但这相当于重新发明轮子。首先我想知道 Glide 能不能做到。
标签: android multithreading android-glide