如何在Android Glide中处理离线图像缓存

时间:2019-05-03 22:31:52

标签: android-glide android-image image-caching android-internal-storage

我正在开发一项功能,该功能使用户在服务中断时需要能够访问一些个人图像。

我目前能够保存包含链接到图像的URL的数据模型。当我离开服务时,因为只能向Glide提供要加载的URL,所以无法查看图像,这是我希望图像缓存进入的地方。

我尝试遍历Glide以预置所有图像,以使其始终在缓存中可用,而不仅仅是用户是否查看过。

RequestOptions options = new RequestOptions()
            .diskCacheStrategy(DiskCacheStrategy.ALL)
            .priority(Priority.HIGH);

     //loop through all the certs with Glide
for (int i = 0; i < responseData.getallCerts().size(); i++){

    Glide.with(this)
            .load(responseData.getallCerts().get(i).getUrl())
            .apply(options);

}

然后我尝试打开飞行模式,看看它们是否会加载。

 Glide.with(this)
                .load(url)
                .apply(options)
                .error(Glide.with(this)
                        .load(url))
                .into(cert_image);

这段代码感觉不对,但是我不确定如何进入缓存。

与此相关的一些问题,尽管我希望得到答案,而不是讨论。

  • 我是否需要构建背景图像下载器,将图像保存在内部存储中,然后在Glide失败时调用以引用方式直接加载它们?加上比较他们修改过的数据,以决定是否需要同步?
  • 每一次加载都反复尝试将图像存储在缓存中 实践?永远不会有超过20张图片,但可能 平均接近5。

我知道Glide应该能够做到这一点,这将为我节省大量时间,避免构建整个已保存的图像同步系统。

0 个答案:

没有答案