在我的应用程序中,我预取了图像,因此当用户使用prefetchToBitmapCache
. 现在,当用户应用过滤器时,这些预取仍保留在管道中并减慢新图像的加载速度。
我是如何预取的:当使用向下滚动图像时,我在' 值之后预取X个图像。LinearLayoutManager.findLastVisibleItemPosition()
当用户应用过滤器时,我需要一种方法来取消所有这些预取。有没有办法做到这一点或更好的预取方式?
在我的应用程序中,我预取了图像,因此当用户使用prefetchToBitmapCache
. 现在,当用户应用过滤器时,这些预取仍保留在管道中并减慢新图像的加载速度。
我是如何预取的:当使用向下滚动图像时,我在' 值之后预取X个图像。LinearLayoutManager.findLastVisibleItemPosition()
当用户应用过滤器时,我需要一种方法来取消所有这些预取。有没有办法做到这一点或更好的预取方式?
我是 Fresco 团队的一员,也许可以提供帮助。两者都imagePipeline.prefetchToDiskCache
返回imagePipeline.prefetchToBitmapCache
对象DataSource<Void>
。如果您将返回的实例存储在某处,则可以关闭它,这应该会取消预取。
// initiate prefetch
prefetchDataSource = imagePipeline.prefetchToBitmapCache(imageRequest, callerContext);
// cancel prefetch
prefetchDataSource.close();