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