当前位置: 首页 > news >正文

Android 横竖屏切换之窗体泄露leaked window DecorView XXXActivity

前言

遇到问题
Android 横竖屏切换之窗体泄露leaked window DecorView XXXActivity

has leaked window DecorView@e6d2d3c[XXXActivity] that was originally added here

场景

在android 横竖屏切换时androidManifest 对应Activity可以设置

  <activityandroid:name=".XXXActivity"android:configChanges="orientation|keyboardHidden"/>

但这样设置会让该Activity重新创建

Activity会触发生命

onPause —>onSaveInstanceState —>onStop —> onCreate —>onStart —>onRestoreInstanceState ---->onResume

如果不做处理 可能会出现 leaked window DecorView XXXActivity
翻译就是窗体泄露 大概就是指 生命周期发生变化时 view还在显示 没有做关闭处理

即:在 Activity 上去构建一个置于 Activity 之上的 Dialog ,这个窗口会依赖于 Activity。如果在浮窗没有被 dismiss 时,Activity 被 finish,就会出现 Window Leaked!

在横竖屏切换时 首先会走 onPause 生命周期 我们可以通过监听器监听此时的窗口状态

  if (loadingDialog != null) {if (loadingDialog.getWindow() != null)loadingDialog.getWindow().getDecorView().getViewTreeObserver().addOnWindowAttachListener(new ViewTreeObserver.OnWindowAttachListener() {@Overridepublic void onWindowAttached() {ALog.e("loadingDialog ->onWindowAttached");}@Overridepublic void onWindowDetached() {ALog.e("loadingDialog ->onWindowDetached");}});}

通过状态捕捉 来处理相应的dialog是否做了关闭处理

解决方法 一

在 Activity 中重写 onCreateDialog 方法,通过该方法让系统对当前dialog管理

	@Overrideprotected Dialog onCreateDialog(int id) {Dialog dialog = new Dialog(this);return dialog;
}

解决方法 二

在Activity的 onDestroy()直接处理 如果没有关闭就关闭掉

    @Overrideprotected void onDestroy() {super.onDestroy();if (progressDialog != null) {progressDialog.dismiss();}}

相关文章:

Android 横竖屏切换之窗体泄露leaked window DecorView XXXActivity

前言 遇到问题 Android 横竖屏切换之窗体泄露leaked window DecorView XXXActivity has leaked window DecorViewe6d2d3c[XXXActivity] that was originally added here 场景 在android 横竖屏切换时androidManifest 对应Activity可以设置 <activityandroid:name".XX…...

mysql之视图执行计划

一.视图 1.1视图简介 1.2 创建视图 1.3视图的修改 1.4视图的删除 1.5查看视图 二.连接查询案例 三.思维导图 一.视图 1.1视图简介 虚拟表&#xff0c;和普通表一样使用 MySQL中的视图&#xff08;View&#xff09;是一个虚拟表&#xff0c;其内容由查询定义。与实际表不…...

软件安装文档 | Docker (简洁)

如果之前安装过旧版本的Docker&#xff0c;可以使用下面命令卸载&#xff1a; yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine …...

PHP代码审计之实战审代码篇2

4. 仔细观察如下代码&#xff0c;思考代码有什么缺陷&#xff0c;可能由此引发什么样的问题&#xff1f; <?php require_once("/home/rconfig/classes/usersession.class.php"); require_once("/home/rconfig/classes/ADLog.class.php"); require_onc…...

05 Ciso模拟器连接腾讯云物联网开发平台

Ciso声明&#xff1a;本篇文章基于使用腾讯云物联网平台连接自定义esp8266物联网设备(腾讯连连控制开关实现) - CSDN App改编 一、总体概览 功能描述&#xff1a; 使用腾讯连连小程序进行控制&#xff0c; Alarm&#xff08;警铃&#xff09;&#xff1a;开的时候&#xff…...

Nginx(二十) 获取真实客户端IP

客户端在访问互联网应用服务器时&#xff0c;与真实的应用服务器之间会因为有多层反向代理&#xff0c;而导致真实应用服务器获取的仅是最近一层的反向代理服务器 IP。为使 Nginx 后端的上游服务器可以获得真实客户端 IP&#xff0c;Nginx 提供了 ngx_http_realip_module 模块用…...

【攻防世界】Reverse—— IgniteMe writeup

main函数&#xff1a;首先检查前4个字符是否“EIS{”&#xff0c;如果是&#xff0c;则会进入check函数。如果check返回true&#xff0c;则会显示“Congratulations” int __cdecl main(int argc, const char **argv, const char **envp) {int result; // eaxsize_t i; // [es…...

m1芯片电脑上的paragon15如何安装激活 m1芯片电脑上ntfs for mac如何安装

Paragon NTFS软件在M1芯片电脑上安装之后&#xff0c;最后一步会让我们“允许加载第三方内核扩展”&#xff0c;具体如下图所示。 图1&#xff1a;允许加载第三方内核扩展 按照图中提示“单击此处“&#xff0c;然后打开安全与隐私。接下来依次点击小锁标志进行解锁&#xff0c…...

【DevOps-01]】DevOps介绍

一、简要描述 DevOps:Development & Operations的缩写,也就是开发&运维 DevOps是一个不断提高效率并且持续不断工作的过程。 核心:简化Dev和Ops团队之间的流程,使整体软件开发过程更快速。 DevOps定义: DevOps 强调的是高效组织团队之间如何通过自动化的工具协作和…...

基于PHP的花店管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的花店管理系统 一 介绍 此花店管理系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。系统角色分为用户和管理员。(附带参考设计文档) 技术栈&#xff1a;phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 …...

《PySpark大数据分析实战》-24.数据可视化图表介绍

&#x1f4cb; 博主简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是wux_labs。&#x1f61c; 热衷于各种主流技术&#xff0c;热爱数据科学、机器学习、云计算、人工智能。 通过了TiDB数据库专员&#xff08;PCTA&#xff09;、TiDB数据库专家&#xff08;PCTP…...

kafka 偏移量的类型与提交方式

kafka checkpoint 在流处理中,“checkpoint” 通常指的是将应用程序的状态保存到可靠的存储系统中,以便在发生故障或应用程序需要重启时能够从先前的状态中恢复。这包括保存处理过的事件、中间结果以及任何其他状态信息。“Checkpointing” 可以确保系统的一致性,并提供容错…...

TCP服务器的编写(下)

我们现在开始对我们的客户端开始封装 我们的客户端&#xff0c;创建完套接字&#xff0c;需不需要bind呢&#xff1f;&#xff1f; 当然是不需要的&#xff0c;你本身是一个客户端&#xff0c;其他人写的应用也可能是客户端&#xff0c;如果我们bind&#xff0c;一定意味着我们…...

Linux系统安全及应用

目录 一、系统安全的加固 1、账号安全的基本措施 1.1 将用户设置为无法登录 1.2 锁定长期不使用的账号 1.3 删除无用的账号 1.4 锁定账号文件passwd、shadow 2、密码安全控制 2.1 设置密码有效期 2.1.1 适用于新建用户 2.1.2 适用于已有用户 2.2 强制用户下次登录一…...

初识Web服务器

一、web服务器 1、什么是web服务器&#xff1f; web服务器就是web项目的容器&#xff0c;我们将开发好的web项目部署到web容器中&#xff0c;才能使用网络中的用户通过浏览器进行访问。 一张图带你了解web服务器有啥作用&#xff1a; 在我的电脑上有一个已经做好的项目&#…...

IOS - 手机安装包 ipa 常见几种方式

安装 ipa 包的方法有很多中&#xff0c;可以通过不同的软件安装&#xff0c;本文只列出了常用的几种&#xff0c;做个简单的归纳整理 1、iTunes 安装 数据线连接手机之后&#xff0c;会自动连接iTunes&#xff0c;&#xff08;第一次连接的时候会提示是否信任此电脑&#xff0…...

60、resnet50 权值和参数加载

上一节我们将 resnet50 中需要下载的权值,以及每层卷积的参数,都下载并且保存到了 仓库 resnet50_weight 目录,在仓库的这个连接。 在将权值保存好之后,接下来就是要看如何使用这些权值,也就是如何加载。本节就介绍下我们实战过程中,如何加载这些权值。 加载权值 加载权…...

wordpress在界面将站点地址直接修改为https导致上不去问题的解决办法

wordpress在界面将站点地址直接修改为https导致上不去问题的解决办法 #修改数据库yz_options...

数字IC后端实现之快速获取innovus中drv violation的所有net list

在Innovus中place_opt_design和optDesign阶段&#xff0c;我们经常会看到如下所示的log提示信息&#xff0c;核心关键词是“ Reasons for remaining drv violations”。而且告诉我们总共有819条net存在drv violation&#xff0c;且无法被工具优化掉。 Reasons for remaining dr…...

【开源】基于JAVA语言的智能教学资源库系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 课程档案模块2.3 课程资源模块2.4 课程作业模块2.5 课程评价模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 课程档案表3.2.2 课程资源表3.2.3 课程作业表3.2.4 课程评价表 四、系统展示五、核心代…...

Happy Island Designer完整指南:免费在线岛屿设计工具终极教程

Happy Island Designer完整指南&#xff1a;免费在线岛屿设计工具终极教程 【免费下载链接】HappyIslandDesigner "Happy Island Designer (Alpha)"&#xff0c;是一个在线工具&#xff0c;它允许用户设计和定制自己的岛屿。这个工具是受游戏《动物森友会》(Animal C…...

从数据中心视角聊token

“我爱你”被AI拆解成了3个tokens&#xff0c;“I love U”也同样被AI拆解成了3个tokens&#xff0c;AI将人类的语言拆解到可被数据分析的最小单位&#xff0c;叫做token&#xff0c;中文是词元&#xff0c;AI通过数据模型的分析&#xff0c;又将无数的token组成了答复反馈给用…...

芯片入门必看:CPU、MCU、SoC、GPU、TPU、NPU

本文首先介绍了芯片的基础分类&#xff0c;包括模拟/数字芯片和逻辑/计算芯片。接着&#xff0c;对8类核心芯片进行了通俗解析&#xff0c;包括CPU、MCU、SoC、GPU、TPU、NPU、FPGA和DSP&#xff0c;涵盖了它们的定义、用途、类型和代表性标的。最后&#xff0c;文章从通用性和…...

初创公司如何借助Taotoken控制大模型API试用与正式成本

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 初创公司如何借助Taotoken控制大模型API试用与正式成本 对于初创公司而言&#xff0c;在产品从原型验证到正式上线的过程中&#x…...

告别SVN提交冲突!手把手教你配置TortoiseSVN 1.10.5的忽略列表与清理功能

告别SVN提交冲突&#xff01;手把手教你配置TortoiseSVN 1.10.5的忽略列表与清理功能 团队协作开发中&#xff0c;版本控制系统是必不可少的工具。Subversion&#xff08;SVN&#xff09;作为一款经典的集中式版本控制系统&#xff0c;至今仍在许多项目中发挥着重要作用。然而&…...

为什么你需要SRWE?5个轻松掌握Windows窗口管理的实用技巧

为什么你需要SRWE&#xff1f;5个轻松掌握Windows窗口管理的实用技巧 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 你是否曾经为Windows窗口管理而烦恼&#xff1f;想要截图却受限于屏幕分辨率&#xff0c;需…...

爆单实操课:从3C到美妆,跨境商家如何用AI神器搞定TikTok本土化

每天都有无数跨境卖家在各大社群里发问&#xff1a;怎么用ai生成带货视频&#xff0c;有哪些工具比较好用&#xff1f; 在 TikTok 这个极度依赖内容爆发的平台上&#xff0c;不同类目的产品对视频素材的需求千差万别。靠人工剪辑不仅效率低&#xff0c;且极难跨越本土化语言的障…...

开源工具LMAO:通过浏览器自动化免费调用ChatGPT与Copilot API

1. 项目概述与核心价值如果你和我一样&#xff0c;是个喜欢折腾各种AI工具&#xff0c;但又对官方API的付费门槛、调用限制或者复杂的申请流程感到头疼的开发者&#xff0c;那么今天聊的这个项目&#xff0c;你一定会感兴趣。它叫LLM-API-Open&#xff0c;圈内朋友喜欢叫它LMAO…...

JPlag代码抄袭检测:17种编程语言的智能原创守护者

JPlag代码抄袭检测&#xff1a;17种编程语言的智能原创守护者 【免费下载链接】JPlag State-of-the-Art Source Code Plagiarism & Collusion Detection. Check for plagiarism in a set of programs. 项目地址: https://gitcode.com/gh_mirrors/jp/JPlag 在数字化教…...

终极指南:5分钟搭建SillyTavern AI聊天前端,解锁个性化角色对话体验

终极指南&#xff1a;5分钟搭建SillyTavern AI聊天前端&#xff0c;解锁个性化角色对话体验 【免费下载链接】SillyTavern LLM Frontend for Power Users. 项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern 想要创建专属的AI聊天伙伴&#xff0c;体验深度…...