首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >downloadOnly是同步的还是异步的?

downloadOnly是同步的还是异步的?
EN

Stack Overflow用户
提问于 2017-12-31 18:07:03
回答 2查看 3.4K关注 0票数 4

考虑下面的代码Glide.with(getContext()).downloadOnly().load(some_uri).submit();

问题1)是同步的还是异步的?

问题2)如果是同步的,那么如何使它是异步的?如果它是异步的,那么如何使它同步?

这个问题指的是幻灯片v4

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-31 18:36:58

回答我自己的问题。

代码语言:javascript
运行
复制
Glide.with(getContext()).downloadOnly().load(some_uri).submit();

就是异步。

代码语言:javascript
运行
复制
Glide.with(getContext()).downloadOnly().load(some_uri).submit().get();

是同步的

票数 15
EN

Stack Overflow用户

发布于 2017-12-31 18:18:21

Glide的downloadOnly() API允许您将图像的字节下载到磁盘缓存中,以便以后可以检索到。您可以在ui线程上异步地使用downloadOnly() downloadOnly(Y DownloadOnly),也可以在后台线程上同步使用donwloadOnly(int,int)。注意,参数略有不同,异步api采用Target,同步api采用整数宽度和高度。

要在后台线程上下载图像,必须使用同步版本:

代码语言:javascript
运行
复制
FutureTarget<File> future = Glide.with(applicationContext)
    .load(yourUrl)
    .downloadOnly(500, 500);
File cacheFile = future.get();

一旦将来返回,图像的字节将在缓存中可用。通常,downloadOnly() API只用于确保磁盘上的字节可用。虽然您可以访问基础缓存文件,但通常不希望与其交互。

相反,当您以后想要检索您的映像时,您可以使用一个正常的调用来这样做,但有一个例外:

代码语言:javascript
运行
复制
Glide.with(yourFragment)
    .load(yourUrl)
    .diskCacheStrategy(DiskCacheStrategy.ALL)
    .into(yourView);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48044740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档