Glide使用downloadOnly 过时
时间: 2023-08-30 22:08:18 浏览: 145
### 回答1:
是的,Glide 的 `downloadOnly()` 方法已经被标记为过时。如果要下载图片而不显示它,可以使用 `download()` 方法。`download()` 方法与 `downloadOnly()` 方法的区别在于,前者会在下载完成后将图片保存到磁盘缓存中,而后者不会。
下面是使用 Glide 下载图片的示例代码:
```java
Glide.with(context)
.load(imageUrl)
.download(new SimpleTarget<File>() {
@Override
public void onResourceReady(File resource, GlideAnimation<? super File> glideAnimation) {
// 下载完成,resource 为保存在磁盘缓存中的文件
}
});
```
在这个示例中,我们通过 `load()` 方法加载图片,并通过 `download()` 方法下载并保存图片。`download()` 方法的参数是一个 `SimpleTarget<File>` 对象,用于在下载完成后回调,`onResourceReady()` 方法中的 `resource` 参数即为保存在磁盘缓存中的文件。
需要注意的是,如果要使用 `download()` 方法下载图片,必须在 AndroidManifest.xml 文件中声明写入外部存储的权限:
```xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
```
### 回答2:
Glide的downloadOnly()方法是用来在后台下载图片,并且不会将图片直接加载到ImageView上。然而,由于一些更新和改进,该方法已经被标记为过时。在最新版本的Glide中,使用downloadOnly()方法并不推荐,应该尽量避免使用它。
过时的原因可能是因为下载图片时,Glide提供了更多的选择和更好的性能。例如,Glide已经引入了RequestOptions类,它提供了更多的选项去控制图片下载的行为和结果。可以通过在RequestOptions中设置diskCacheStrategy()方法来指定磁盘缓存策略,这样可以更好地管理已下载的图片缓存。
另外,Glide中的新方法也提供了更好的错误处理机制。过时的downloadOnly()方法无法提供可靠的错误处理,而新的方法可以更好地处理加载过程中的异常和错误情况。
因此,建议使用新的方法来替代过时的downloadOnly()。例如,可以使用Glide的asFile()方法来直接下载图片文件,并使用diskCacheStrategy()来设置缓存策略。或者也可以使用Glide的preload()方法来预加载图片,为后续的加载操作做准备。
总之,尽量避免使用过时的downloadOnly()方法,而是使用新的方法来更好地管理和处理图片下载过程中的各种情况。
### 回答3:
Glide的downloadOnly方法是用于仅下载图片而不显示的方法,它已经被标记为过时。原因是在实际使用中发现,仅下载图片而不显示可能会导致一些问题。
首先,通过downloadOnly方法下载的图片将不会被缓存。这意味着每次你需要显示这个图片时,都需要重新下载。这不仅会消耗网络流量,还会延长图片加载的时间,并且在网络不稳定的情况下,可能导致图片无法加载成功。
其次,downloadOnly方法没有提供任何回调接口,无法处理下载过程中的异常情况。如果在下载过程中出现网络错误或其他问题,我们将无法得知并进行相应处理。
另外,Glide还提供了一种更加灵活的方式来实现图片下载和加载的功能,即使用into方法。通过into方法,我们可以指定一个用于显示图片的目标View,并在加载完成后得到相应的回调,从而可以更好地处理加载过程中的各种情况。
总结来说,Glide的downloadOnly方法被标记为过时是因为它无法处理缓存以及异常情况,并且有更加灵活的替代方案可供选择。因此,在实际使用中,建议使用更为有效和可靠的方式来进行图片下载和加载。