Glide(二)Request队列管理

本文深入探讨了Glide的Request队列管理,重点介绍了`load`和`into`方法,以及RequestTracker如何根据生命周期管理请求。在生命周期回调中,如`onPause`、`onResume`和`onStop`,RequestTracker对Request进行暂停、重启和清除操作,实现高效的资源管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

入口

上篇总结了下Glide利用fm和一个空Fragment 进行生命周期的管理,这里继续看load & into。不多说,上代码

// 上篇分析了with,继续看下 load & into
Glide.with(this).load("url").into(...);
  • 1.1 load
public RequestBuilder<Drawable> load(@Nullable Object model) {
    return asDrawable().load(model);
  }

  public RequestBuilder<Drawable> asDrawable() {
    return as(Drawable.class);
  }

  // 实例一个RequestBuilder
  public <ResourceType> RequestBuilder<ResourceType> as(Class<ResourceType> resourceClass) {
    return new RequestBuilder<>(glide, this, resourceClass);
  }

  // RequestBuilder 构造中的 requestManager
   protected RequestBuilder(Glide glide, RequestManager requestManager,
      Class<TranscodeType> transcodeClass) {
    this.glide = glide;
    this.requestManager = requestManager;
    this.context = glide.getGlideContext();
    this.transcodeClass = transcodeClass;
    this.defaultRequestOptions = requestManager.getDefaultRequestOptions();
    this.transitionOptions = requestManager.getDefaultTransitionOptions(transcodeClass);
    this.requestOptions = defaultRequestOptions;
  }
  • 2.1 into
public Target<TranscodeType> into(ImageView view) {
    // 主线程校验(涉及View刷新)
    Util.assertMainThread();
    // View 非空校验
    Preconditions.checkNotNull(view);

    RequestOptions requestOptions = this.requestOptions;
    if (!requestOptions.isTransformationSet()
        && requestOptions.isTransformationAllowed()
        && view.getS
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值