考虑下面的代码Glide.with(getContext()).downloadOnly().load(some_uri).submit();
问题1)是同步的还是异步的?
问题2)如果是同步的,那么如何使它是异步的?如果它是异步的,那么如何使它同步?
这个问题指的是幻灯片v4
发布于 2017-12-31 18:36:58
回答我自己的问题。
Glide.with(getContext()).downloadOnly().load(some_uri).submit();就是异步。
Glide.with(getContext()).downloadOnly().load(some_uri).submit().get();是同步的
发布于 2017-12-31 18:18:21
Glide的downloadOnly() API允许您将图像的字节下载到磁盘缓存中,以便以后可以检索到。您可以在ui线程上异步地使用downloadOnly() downloadOnly(Y DownloadOnly),也可以在后台线程上同步使用donwloadOnly(int,int)。注意,参数略有不同,异步api采用Target,同步api采用整数宽度和高度。
要在后台线程上下载图像,必须使用同步版本:
FutureTarget<File> future = Glide.with(applicationContext)
.load(yourUrl)
.downloadOnly(500, 500);
File cacheFile = future.get();一旦将来返回,图像的字节将在缓存中可用。通常,downloadOnly() API只用于确保磁盘上的字节可用。虽然您可以访问基础缓存文件,但通常不希望与其交互。
相反,当您以后想要检索您的映像时,您可以使用一个正常的调用来这样做,但有一个例外:
Glide.with(yourFragment)
.load(yourUrl)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(yourView);https://stackoverflow.com/questions/48044740
复制相似问题