我实现了一个例程,它将数据从json保存到数据库中,之后如果用户离线,他可以看到所有数据。但是毕加索在第一次运行后并没有加载图像。但是当我在在线模式下运行应用程序两次后,毕加索可以在离线模式下从缓存加载图像。 (它应该在第一次运行时缓存图像,但它不起作用)
欣赏任何建议
答案 0 :(得分:3)
https://stackoverflow.com/a/23281195/3664628
Picasso没有磁盘缓存。它委托您用于该功能的任何HTTP客户端(依赖于缓存控制的HTTP缓存语义)。因此,您寻求的行为是免费的......
答案 1 :(得分:-1)
主要原因可能是其他图像由于其大小而从缓存中驱逐旧版本。您可以像这样加载较小的版本或增加内存缓存的大小
directives
如果您不想保存在缓存中,可以使用内存政策另外排除。
Picasso首先尝试从内存中获取所请求的图像。如果您希望Picasso跳过此步骤,您可以在Picasso请求创建者上致电Picasso p = new Picasso.Builder(context)
.memoryCache(new LruCache(Size))
.build();
。 memoryPolicy(MemoryPolicy policy, MemoryPolicy... additional)
是一个包含两个值的简单枚举:MemoryPolicy
和NO_CACHE
。像这样
NO_STORE
其他来源:futurestud.io