编辑:我刚开始遇到这些崩溃,就像一个新图像试图加载第一个使用毕加索的活动一样,所以毕加索的图像管理似乎工作正常。我注意到这没有发生,但在 Nexus 5 上。我运行 4.4.2 的 HTC One 没有这个问题。它也会在清除缓存后停止一小会儿。
据我了解,毕加索应该为你处理一切。有一些关于如何取消请求的示例,但它们很少而且相距甚远。也就是说,我遇到了一个问题,如果在图像仍在加载时导航离开带有加载图像的适配器的活动,OkHttp 会引发 IOException:
03-10 17:13:08.972 21440-21626/[Package] E/AndroidRuntime﹕ FATAL EXCEPTION: OkHttp DiskLruCache
Process: [Package], PID: 21440
java.lang.RuntimeException: java.io.IOException: failed to delete /data/data/[Package]/cache/picasso-cache/7e2da32a20d0abcdb2ae7347580c9658.0
at com.squareup.okhttp.internal.DiskLruCache$1.run(DiskLruCache.java:175)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
Caused by: java.io.IOException: failed to delete /data/data/[Package]/cache/picasso-cache/7e2da32a20d0abcdb2ae7347580c9658.0
at com.squareup.okhttp.internal.DiskLruCache.remove(DiskLruCache.java:584)
at com.squareup.okhttp.internal.DiskLruCache.trimToSize(DiskLruCache.java:639)
at com.squareup.okhttp.internal.DiskLruCache.access$100(DiskLruCache.java:86)
at com.squareup.okhttp.internal.DiskLruCache$1.run(DiskLruCache.java:169)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
有任何想法吗?