java - 如何记录 Glide 的每个请求 url?

标签 java android kotlin android-glide

我已经使用Glide下载图片很长时间了,所以这样的代码比比皆是:

      GlideApp.with(getContext())
            .load(imgUrl)
            .into(imgView);

突然我需要记录每个图像的网址以进行进一步分析。而不是搜索 Glade 的每个用法并像这样更改代码:

      GlideApp.with(getContext())
            .load(imgUrl)
            .listener(requestListener) // log urls through listener
            .into(imgAd);

有什么方法可以像 Glide 的默认选项一样全局添加 requestListener ,这样我就不需要在整个应用程序中搜索和更改每个 Glide 的使用情况?

我使用 Glide v4 并且我检查了 post它将 URL 直接记录到 logcat,但不记录到我的本地存储以供进一步分析。

最佳答案

Glide 4.9.0 可以设置默认的 requestListener。

链接 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 fragment 中

GlideApp.with(object).addDefaultRequestListener()

Glide.with(object).addDefaultRequestListener()

关于java - 如何记录 Glide 的每个请求 url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55370769/

相关文章:

Android - 运行时 Dagger 注入(inject)

android - "::"在 kotlin 中是什么意思?

java - 使用HashMap <String,Drawable>时需要使用什么声明?

android - 当我的应用程序进入后台时,如何防止 Android 截屏?

java - 如何停止连续扫描二维码?

android - 当焦点在代码上时自动最小化监视器

android - 处理损坏的类文件时出错?在android中执行lint任务时

Kotlin 协同例程按顺序执行,但仅在生产机器上执行

java - 如何从方法返回接口(interface)

java - Android - Sqlite 还是 Xml?