安卓壁画如何获得保存缓存回调



我收到一个关于android壁画库的问题。你们知道当文件保存在缓存中时如何获得回调吗?通常,我们可以从缓存中获取文件:

ImageRequest imageRequest= ImageRequest.fromUri(url);
CacheKey cacheKey= DefaultCacheKeyFactory.getInstance().getEncodedCacheKey(imageRequest);
BinaryResource resource = ImagePipelineFactory.getInstance().getMainDiskStorageCache().getResource(cacheKey);
File file=((FileBinaryResource)resource).getFile();

然而,如果我把它放在onCreate()函数中,它会崩溃,因为文件还没有在缓存中。你们知道壁画保存完成后我是怎么得到回拨的吗?是DataSubscriber吗?你们能举个例子吗?我看了文件,但搞不清楚。

谢谢。

我是Fresco团队的一员,可能会提供帮助。请参阅我们关于如何正确获取编码图像字节的文档。这里有一个代码示例,说明如何获得编码图像的InputStream(这是存储在缓存中的内容)。然后你可以直接使用这些字节,或者如果你需要File将其传递到其他地方,你应该创建自己的文件并将返回的字节存储在其中。没有其他安全的方法来处理缓存的图像,因为你不能保证Fresco在任何时候都不会收回(删除)缓存的文件。

最新更新