毕加索没有为第一次加载缓存,但第二次没问题

时间:2016-03-02 06:04:40

标签: android caching offline picasso android-lru-cache

我实现了一个例程,它将数据从json保存到数据库中,之后如果用户离线,他可以看到所有数据。但是毕加索在第一次运行后并没有加载图像。但是当我在在线模式下运行应用程序两次后,毕加索可以在离线模式下从缓存加载图像。 (它应该在第一次运行时缓存图像,但它不起作用)

欣赏任何建议

2 个答案:

答案 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)是一个包含两个值的简单枚举:MemoryPolicyNO_CACHE。像这样

NO_STORE

其他来源:futurestud.io