Glide异常:You cannot start a load for a destroyed activity

article/2025/9/22 14:22:13

项目上线后,Bugly上统计到错误如下:

原因很简单在Glide加载图片的时候发现发现控件所在的Activity已经被销毁了。搜索一下这个错误信息"You cannot start a load for a destroyed activity",定位问题:

 即:在调用 Glide.with(context)时,页面就已经销毁了。

 再看Bugly上的出错堆栈中的详细信息,分析发现在我们的详情页销毁后,接口请求完成执行了doFinally方法,在其中调用了Glide加载图片的逻辑。

 查看doFinally()方法的注释:

 翻译过来就是当观察者(下游)的onError、onCompleted事件回调后,或者调用disposed之后会调用到doFinally,每次订阅都会调用一次onFinally事件回调。

写个简单的demo测试一下:

class BaseUseActivity : AppCompatActivity() {lateinit var mBinding: ActivityBaseUseBindingvar disposable: Disposable? = nulloverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)mBinding = ActivityBaseUseBinding.inflate(layoutInflater)setContentView(mBinding.root)mBinding.btnTest01.setOnClickListener {//计时5秒,发送事件Observable.timer(5, TimeUnit.SECONDS).doOnSubscribe {println("------------------doOnSubscribe------------")disposable = it}.doFinally {println("------------doFinally------------")}.subscribe(object :Observer<Long>{override fun onSubscribe(d: Disposable) {disposable=d}override fun onNext(t: Long) {println("------------onNext------------")}override fun onError(e: Throwable) {println("----------------onError------------")}override fun onComplete() {println("-------------onComplete------------")}})}}override fun onDestroy() {super.onDestroy()println("-------------------onDestroy------------")//取消事件监听disposable?.dispose()}}


 总结:因为Rxjava中onFinally回调,即使disposed之后还会执行,所以不能在此方法中执行UI更新等操作。


http://chatgpt.dhexx.cn/article/jNLAtTNl.shtml

相关文章

Vue keep-alive后不能触发destroyed

<keep-alive :include"cachedViews"><router-view :key"key" /></keep-alive> 当我们在项目中配置了keep-alive后&#xff0c;会发现页面关闭不能触发beforeDestroy。 首先我们来看看keep-alive是什么东西 keep-alive是Vue的内置组件&…

小米开机the system has been destroyed

原因&#xff1a;可能是升级/刷机系统之时重启导致&#xff0c;也可能是刷机时选择了【全部删除并/lock】导致系统损坏&#xff0c;非硬件损坏&#xff0c;可以通过刷机解决。 解决步骤 1、解锁BL&#xff0c;登录后进行解锁。 2、解锁后刷机即可 记得点击全部删除

vue 生命周期4 销毁流程 beforeDestroy destroyed

销毁流程&#xff1a; 当调用了vm.$destroy 则触发销毁流程 验证下&#xff1a; 加一个按钮和销毁事件 效果&#xff1a; 发现点击了vm销毁,但是页面上仍不变 因为虽然vm没了但是vm的工作成果还是在的 并不是vm销毁后,它的生成的dom也销毁掉,只不过是没有人帮你去管理了 …

浏览器刷新为什么不会走销毁(beforeDestroy和destroyed)周期?

浏览器刷新为什么不会走销毁&#xff08;beforeDestroy和destroyed&#xff09;周期&#xff1f; 为什么我要写这篇博客呢&#xff0c;还有就是为什么我会问这个问题呢&#xff1f; 因为之前我遇到一个内存泄漏的问题&#xff0c;然后呢我在vue的beforeDestroy生命周期钩子函…

electron报错Error: Object has been destroyed

文章目录 问题描述解决方案 问题描述 在 Electron 中&#xff0c;当一个窗口被销毁后&#xff0c;与该窗口相关联的 JavaScript 对象也会被销毁&#xff0c;再次访问已被销毁的窗口对象时&#xff0c;会导致 Error: Object has been destroyed 错误。 例如之前在写多窗口pinia…

【解决】MissingReferenceException: The object of type ‘GameObject‘ has been destroyed 观察者模式 监听物体被销毁

MissingReferenceException: The object of type ‘Text’ has been destroyed but you are still trying to access it. Your script should either check if it is null or you should not destroy the object. 该情况发生于我的观察者模式在重新加载当前场景时 监听的物体被…

统一接口平台(一) 产品介绍

产品介绍 前端应用系统通过统一接口平台获取数据&#xff0c;不直接与外部系统接口打交道。统一接口平台通过多种方式与外部系统联接获取数据并向各前端应用系统提供各种数据格式包&#xff0c;将外部系统有效地隔离在业务系统之外。前端应用系统需要请求的外部接口需要在统一…

常见的几个接口管理平台简介

年前最后一更&#xff0c;自从Internet服务开发以来&#xff0c;作为开发者阵营&#xff0c;我们已经在实践中证明了前端和后端分离开发模型正逐渐成为越来越多的Internet公司构建服务和应用程序的一种方式。 前端和后端分离的优点很多。一个重要的优点是&#xff0c;对于后台服…

前后端对接及接口管理平台浅析

文章目录 一、接口是什么&#xff08;附带简易案例)二、Tomcat的Servlet三、json四、接口文档&#xff1a;五、管理平台 每一个完整的项目都是不是一个人的功劳&#xff0c;是一个团队的心血&#xff01;那么在这个项目从无到有的过程中&#xff0c;一个团队是如何凝聚呢&#…

如何搭建一个自己的接口自动化测试平台

0、实现方式 后端&#xff1a;java前端&#xff1a;vueelement-uimock&#xff1a;mock-server其它&#xff1a;redis 感谢大家的莅临&#xff0c;小编在文章末尾为大家准备了一些福利&#xff0c;需要的可以获取哦。 1、数据构建 ​ 我们在测试过程中发现测试数据的构建非…

6 个常用的 API 接口在线管理平台

点击关注公众号&#xff0c;架构干货及时送达 上一篇&#xff1a;腾讯开发团队又一开源利器发布&#xff01; 1.EOLINKER&#xff08;推荐&#xff09;可以协作&#xff0c;界面简洁 地址&#xff1a;https://www.eolinker.com/#/?statuslink-jump 2.RAP&#xff08;前阿里妈妈…

接口管理平台YApi坑死我了(超级详细实操教程) - 421篇

历史文章&#xff08;累计400篇文章&#xff09; 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 你真的学会了Lambda表达式了吗&#…

API接口开放平台

近期服务器不想在维护了&#xff0c;接口已经陆续开放 服务器也经常奔溃&#xff0c;一分价钱一分货 忠告&#xff1a;出了事情要学会使用法律武器保护自己 主要推荐初步入门学习的伙伴&#xff0c;可以借助这些接口丰富自己的站点 API接口包括&#xff1a; 一、资讯 全网热…

Yapi接口平台个人总结

YApi是去哪儿移动架构组开源的API管理系统&#xff0c;是一款api管理平台。 一&#xff0c;yapi相关信息与教程 官网地址&#xff1a;https://yapi.ymfe.org/ 示例地址&#xff1a;http://yapi.demo.qunar.com/ 使用教程&#xff1a;https://hellosean1025.github.io/yapi …

百度ai平台接口使用记录

前一段时间在做毕业设计&#xff0c;打算做一些风格转换相关的项目&#xff0c;想自己制作一份数据集用于训练&#xff0c;于是发现了百度ai平台提供的api接口可以实现“人脸动漫化”、“图像风格转换”等功能。按照一定步骤操作后&#xff0c;只要通过post请求就可以将本地的图…

API接口管理平台源码thinkPHP

API接口管理平台源码thinkPHP 安装步骤&#xff1a; 1.数据库信息配置在路径【config/database.php】文件中 2.导入根目录下的【data.sql】数据库文件 3.设置网站运行目录为根目录【public】 4.目录 后台地址 /admin/login.html 账户 admin 密码 123456 测试截图 后台截…

通用接口开放平台设计与实现——(2)功能架构

前面说过&#xff0c;接口开放平台主要有两部分功能组成&#xff0c;一是处于主体地位的API接口&#xff0c;对外提供数据服务&#xff1b;二是处于辅助角色的消息服务&#xff0c;用于通知数据变动。 实际上&#xff0c;客观上还需要平台自身管理功能&#xff0c;来维护平台的…

接口测试平台(一)

需求描述&#xff1a; 测试的项目使用内部加密的算法&#xff0c;普通的接口测试测试工具(Jmeter/PostMan/HttpRequest)不能满足&#xff0c;同时满足接口的自动化测试&#xff0c;用例集为1个业务场景为单位进行测试。请求方式中多一种post加密&#xff0c;同时数据比较多结构…

2022盘点工作室常用的API数据接口开发平台

果创云 果创云&#xff08;http://YesApi.cn&#xff09;&#xff0c;是一个低代码数据接口开发平台&#xff0c;为工作室提供“开箱即用”的数据API接口。 当工作室需要开发自己的小项目、脚本、小程序、管理后台时&#xff0c;可以使用果创云低代码接口平台&#xff0c;快速…

超强接口协作平台如何打造:细数Apifox的六把武器

前言&#xff1a;推荐一款免费而强大的接口协作工具&#xff0c;感兴趣的小伙伴儿自行前往官网尝鲜 1 关于接口协作平台的畅想 软件界发展至今&#xff0c;API&#xff08;接口&#xff09;的重要性日益凸显——不同的端&#xff0c;不同的模块都在通过API交互&#xff0c;不…