我有一个关于我是否应该(以及如何)存储从网络加载的图像的问题。假设我正在从我的 Android 应用程序调用 Web 服务。在此 Web 服务中,我获得了 Web 上图像的 URL。我下载并在 ListView 中列表项的左侧显示此图像。我的问题是,我应该使用什么方法来存储图像?我是不是该:
- 将其保存到 SDCard,在创建 ListView 时检查它是否存在(在后续请求中)并在必要时重新下载(偶尔更新图像,以防它发生变化)。
- 使用 Context.getCacheDir() 将其存储在缓存中,但可能会被迫更频繁地重新下载它,因为我不能依赖保留在缓存中的图像。
- 始终下载它并且永远不要存储图像。
图像文件本身相当小,但我希望一些用户可以下载/存储数十个这样的小图像。哪种方法效果最好,和/或首选方法是什么?
作为一个附带问题,我应该首先在我的 ListView 中加载所有图像(并可能锁定 UI 一段时间)还是异步加载它们但同时显示一个占位符图形(这可能有点“丑陋”)?这里的标准是什么?