如何记录来自 Glide 的每个请求 url?
How to log each request url from Glide?
我使用Glide下载图片已经有很长一段时间了,所以到处都是这样的代码:
GlideApp.with(getContext())
.load(imgUrl)
.into(imgView);
突然间我需要记录每张图片的 url 以供进一步分析。而不是像这样搜索 Glade 的每个用法并更改代码:
GlideApp.with(getContext())
.load(imgUrl)
.listener(requestListener) // log urls through listener
.into(imgAd);
有没有什么方法可以像在 Glide 的默认选项中一样全局添加 requestListener,这样我就不需要在整个应用程序中搜索和更改每个 Glide 用法?
我使用 Glide v4 并且我已经检查了 ,它将 url 直接记录到 logcat 但没有记录到我的本地存储以供进一步分析。
Glide 4.9.0 可以设置默认的requestListener。
link https://github.com/bumptech/glide/releases/tag/v4.9.0
https://github.com/bumptech/glide/commit/37127f0f817d4a11dfdcc447946397b5288de593
在自定义 AppGlideModule 中
@GlideModule
public class MyAppGlideModule extends AppGlideModule {
@Override
public void applyOptions(@NonNull Context context, @NonNull GlideBuilder builder) {
builder.addGlobalRequestListener(new RequestListener<Object>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Object> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(Object resource, Object model, Target<Object> target, DataSource dataSource, boolean isFirstResource) {
return false;
}
});
}
}
在自定义 Activity 片段中
GlideApp.with(object).addDefaultRequestListener()
Glide.with(object).addDefaultRequestListener()
我使用Glide下载图片已经有很长一段时间了,所以到处都是这样的代码:
GlideApp.with(getContext())
.load(imgUrl)
.into(imgView);
突然间我需要记录每张图片的 url 以供进一步分析。而不是像这样搜索 Glade 的每个用法并更改代码:
GlideApp.with(getContext())
.load(imgUrl)
.listener(requestListener) // log urls through listener
.into(imgAd);
有没有什么方法可以像在 Glide 的默认选项中一样全局添加 requestListener,这样我就不需要在整个应用程序中搜索和更改每个 Glide 用法?
我使用 Glide v4 并且我已经检查了
Glide 4.9.0 可以设置默认的requestListener。
link https://github.com/bumptech/glide/releases/tag/v4.9.0 https://github.com/bumptech/glide/commit/37127f0f817d4a11dfdcc447946397b5288de593
在自定义 AppGlideModule 中
@GlideModule
public class MyAppGlideModule extends AppGlideModule {
@Override
public void applyOptions(@NonNull Context context, @NonNull GlideBuilder builder) {
builder.addGlobalRequestListener(new RequestListener<Object>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Object> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(Object resource, Object model, Target<Object> target, DataSource dataSource, boolean isFirstResource) {
return false;
}
});
}
}
在自定义 Activity 片段中
GlideApp.with(object).addDefaultRequestListener()
Glide.with(object).addDefaultRequestListener()