关于onConfigurationChanged方法及常见问题解决

2023-05-16

 *本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 

1、public void onConfigurationChanged(Configuration newConfig)方法介绍

newConfig:新的设备配置信息

当系统的配置信息发生改变时,系统会调用此方法。注意,只有在配置文件AndroidManifest中处理了configChanges属性对应的设备配置,该方法才会被调用。如果发生设备配置与在配置文件中设置的不一致,则Activity会被销毁并使用新的配置重建。

例如:

当屏幕方向发生改变时,Activity会被销毁重建,如果在AndroidManifest文件中处理屏幕方向配置信息如下


则Activity不会被销毁重建,而是调用onConfigurationChanged方法。

如果configChanges只设置了orientation,则当其他设备配置信息改变时,Activity依然会销毁重建,且不会调用onConfigurationChanged。

例如,在上面的配置的情况下,如果语言改变了,Acitivyt就会销毁重建,且不会调用onConfigurationChanged方法。


2、configChanges设置取值




注意:横竖屏切换的属性是orientation。如果targetSdkVersion的值大于等于13,则如下配置才会回调onConfigurationChanged方法

 android:configChanges="orientation|screenSize"
如果targetSdkVersion的值小于13,则只要配置
  android:configChanges="orientation"

就可以了。

网上有很多文章写说横竖屏切换时onConfigurationChanged方法没有调用,使用如下的配置

android:configChanges="orientation|keyboard|keyboardHidden"
但是!!!其实查官方文档,只要配置 android:configChanges="orientation|screenSize"就可以了。


扩展:

当用户接入一个外设键盘时,默认软键盘会自动隐藏,系统自动使用外设键盘。这个过程Activity的销毁和隐藏执行了两次。并且onConfigurationChanged()周期不会调用。

但是在配置文件中设置android:configChanges="keyboardHidden|keyboard"。当接入外设键盘或者拔出外设键盘时,调用的周期是先调用onConfigurationChanged()周期后销毁重建。

在这里有一个疑点,为什么有两次的销毁重建?

其中一次的销毁重建可以肯定是因为外设键盘的插入和拔出。当设置android:configChanges="keyboardHidden|keyboard"之后,就不会销毁重建,而是调用onConfigurationChanged()方法。

但是还有一次销毁重建一直存在。

经过测试,当接入外设键盘时,除了键盘类型的改变,触摸屏也发生了变化。因为使用外设键盘,触摸屏不能使用了。(如果是接入触摸板,不知道会不会有这个问题?欢迎大家提供意见)。这里,我接入的是键盘,所以触摸屏不能使用了。

总结:

如果是键盘类型发生了改变,则configChanges属性配置如下Activity才不会销毁重建,且回调onConfigurationChanged方法




note:这里的外置物理键盘可以是游戏手柄、扫描枪、键盘等等。

总结:

设备配置的更改会导致Acitivity销毁重建,而设置android:configChanges则避免Activity销毁重建,系统会回调onConfigurationChanged方法。


官方文档:

https://developer.android.com/guide/topics/manifest/activity-element.html






本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于onConfigurationChanged方法及常见问题解决 的相关文章

  • Android Stdio引入kotlin-android-extensions插件

    在Activity中使用Toast lt xml version 61 34 1 0 34 encoding 61 34 utf 8 34 gt lt LinearLayout xmlns android 61 34 http schema
  • 微信小程序开发(一)

    微信小程序开发 目录 微信小程序开发 一 微信小程序开发 二 五 让小程序连接树莓派 六 xff1a 小程序控制面板设计 七 xff1a 树莓派如何解析小程序的信息 八 xff1a 树莓派如何回信息给小程序 九 xff1a 树莓派与微信小程
  • pancakeswap薄饼添加流动性后实现永久锁仓

    pancakeswap xff08 薄饼 xff09 添加流动性后永久锁仓的目的是彻底放弃对资金池的控制权限 xff0c 永久不能撤池 主要针对项目方在首次完成流动性的添加后 xff0c 永久锁仓 这样就放弃了对流动性的所有权 xff0c
  • GEO芯片数据探针id转化

    以数据集GSE89657为例 xff0c 芯片平台是GPL6244 1 下载表达谱数据 GEO网站手动下载表达谱数据 xff0c 解压 xff0c 去注释 gunzip GSE89657 series matrix txt gz cat G
  • R语言正态分布

    统计分布每一种分布有四个函数 xff1a d density xff08 密度函数 xff09 xff0c p 分布函数 xff0c q 分位数函数 xff0c r 随机数函数 正态曲线呈钟型 xff0c 两头低 xff0c 中间高 xff
  • R语言均匀分布

    在R中 xff0c unif是用来进行均匀分布分析的 xff0c 在其前面加上不同的前缀表示不同的函数 xff0c 各函数的使用格式如下所示 xff1a dunif x min 61 0 max 61 1 log 61 FALSE 分布密度
  • 转录本counts,FPKM,TPM相互转化

    FPKM Fragments Per Kilobase of exon model per Million mapped fragments 每千个碱基的转录每百万映射读取的fragments FPKM xff1a Fragments pe
  • R语言泊松(Poisson)分布

    Poisson分布 xff0c 是一种统计与概率学里常见到的离散概率分布 xff0c 由法国数学家西莫恩 德尼 泊松 xff08 Sim on Denis Poisson xff09 在1838年时发表 泊松分布的参数 是单位时间 或单位面
  • windows软件窗口或者对话框太大超出屏幕解决办法

    软件窗口太大显示不全 问题 xff1a 软件窗口或对话框太大 xff0c 最大化也无法显示全部 xff0c 拖动标题栏移动到屏幕顶部 xff0c 底部也显示不出来 具体见下面两张图片 解决方法 xff1a 使用第三方工具 xff1a 窗口移
  • R语言卡方(chisq)分布

    若n个相互独立的随机变量 xff0c xff0c n xff0c 均服从标准正态分布 xff08 也称独立同分布于标准正态分布 xff09 xff0c 则这n个服从标准正态分布的随机变量的平方和构成一新的随机变量 xff0c 其分布规律称为
  • liftOver进行基因组坐标转换

    Liftover是UCSC中用于基因组版本之间转换的一个工具 xff0c 既可以做某一物种内基因组版本的转换 xff0c 还可以做物种间基因组版本的转换 1 网页转换 http genome ucsc edu cgi bin hgLiftO
  • R语言ggraph包绘制环状网络图

    ggraph 是 ggplot2 的扩展 xff0c 用于绘制关系型数据结构 xff0c 如网络 图和树等 ggraph 包含 3 个核心概念 xff1a layout xff1a 定义图的布局 xff0c 如蜂巢图 圆堆积图等 nodes
  • 本地安装运行HiC数据可视化容器higlass-docker

    HiGlass xff0c 这是一个基于web技术的开源可视化工具 xff0c 它提供了一个丰富的界面 xff0c 用于快速 多重和多尺度导航2D基因组地图以及1D基因组轨迹 xff0c 允许用户组合各种数据类型 xff0c 同步多个可视化

随机推荐

  • R语言p值校正函数p.adjust

    调整方法包括Bonferroni校正 xff08 Bonferrroni xff09 xff0c 其中p值乘以比较次数 Holm xff08 1979 xff09 xff08 Holm xff09 Hochberg xff08 1988 x
  • R语言中Lasso Cox 筛选生存相关特征

    构建预后模型时 xff0c 通常先进行单因素Cox分析筛选出关联的变量 xff0c 再通过Lasso Cox 筛选生存相关特征 xff08 排除多重共线性的特征 xff09 xff0c 最后构建Cox多因素回归模型分析预后影响 Lasso
  • R包WGCNA分析代码

    WGCNA xff08 加权基因共表达网络分析 xff09 R软件包 xff0c 用于执行加权相关网络分析 xff0c 包括网络构建 模块检测 基因选择 拓扑结构计算 数据模拟 可视化以及与外部软件的接口等功能 WGCNA旨在寻找协同表达的
  • 单样本GSEA分析肿瘤组织免疫浸润

    单样本GSEA分析即ssGSEA xff0c 可以计算肿瘤组织中免疫细胞的比例 xff0c 从而量化免疫浸润 ssGSEA可以用R 当中的GSVA包来计算 1 下载 xff0c 读入免疫细胞特征基因集 http cis hku hk TIS
  • 如何进行服务器选型

    1 服务器要运行什么应用 Web服务器对硬件要求不高 xff0c 一般的硬件配置即可满足需求 xff0c 如果后期Web服务访问量上升 xff0c 只需要新增同等配置的服务器 xff0c 通过负载均衡进行集群 xff0c 即可实现Web服务
  • 约瑟夫环问题总结

    问题简介 xff1a 约瑟夫环 xff08 约瑟夫问题 xff09 是一个数学的应用问题 xff1a 已知n个人 xff08 以编号1 xff0c 2 xff0c 3 n分别表示 xff09 围坐在一张圆桌周围 从编号为k的人开始报数 xf
  • 文件夹重命名(或移动)却找不到指定该文件类型咋办?

    文件夹重命名 或移动 却找不到指定该文件类型咋办 xff1f 方法一 xff0c 导入FolderDescriptions reg 64位系统导入 xff1a FolderDescriptions x64 reg 32位系统导入 xff1a
  • ubuntu 18.04忘记登录密码的破解方法

    参考 xff1a https www linuxrumen com rmxx 889 html
  • Android 解决Toast不显示

    没有调用show方法 例如 xff1a Toast makeText MainActivity this 休眠 Toast LENGTH SHORT show
  • LwIP之TCP Server多client连接发送和接收Demo

    msh调用时对端口进行监听 xff0c 监听到有客户端连接时 xff0c 创建新的线程进行连接 监听时设置最大连接数为4 xff0c 使用SocketTool工具模拟client连接 xff0c 实际效果如下 span class toke
  • Manjaro配置攻略

    1 概述 本文主要讲述了新安装的Manjaro一些常用的配置 xff0c 包括源 常用软件 快捷键 终端以及一些效率工具的配置 2 pacman源 首先是pacman源的选择 xff1a span class token function
  • 真 ● 禁秘技 ● 奥义 ● 终端美化

    1 概述 作为一个程序员 xff0c 可以没钱 xff0c 没车 xff0c 没房 xff0c 没老婆 xff0c 没女朋友 但是 xff0c 一定要有一个漂亮骚气的终端 没错 xff0c 大骚特骚 说什么大实话 先来看看原生的终端 xff
  • NFS网络文件共享服务

    NFS用来做什么 以下说明节选自 xff0c 老男孩相关书籍 xff1a 在企业集群架构的工作场景中 xff0c NFS网络文件系统一般被用来存储共享视频 图片 附件等静态资源文件 xff0c 通常网站用户上传的文件都会放到NFS共享里 x
  • mariadb数据库基本使用

    mariadb数据库简介 自甲骨文公司收购MySQL后 xff0c 其在商业数据库与开源数据库领域市场的占有份额都跃居第一 xff0c 这样的格局引起了业内很多的人士的担忧 xff0c 因为商业数据库的老大有可能将MySQL闭源 为了避免O
  • Ubuntu-常见问题

    执行 sudo apt get update 报错 E Problem executing scripts APT Update Post Invoke Success 39 if usr bin test w var cache app
  • systemd --user进程CPU占用高问题分析

    原文链接 xff1a https www cnblogs com yaohong p 16046670 html xff0c 转载需经同意 1 问题由来 近期发现堡垒机环境有如下问题 xff0c systemd占用大量cpu xff1a 2
  • C语言回调函数的定义和写法

    C语言中的回调函数 xff08 Callback Function xff09 1 定义和使用场合 回调函数是指 使用者自己定义一个函数 xff0c 实现这个函数的程序内容 xff0c 然后把这个函数 xff08 入口地址 xff09 作为
  • Xshell超250+配色方案(主题) 及其推荐

    Xshell配色方案 主题 超290 43 xshell主题 xshell配色方案 xshell theme 超过290个xshell配色方案 xff0c 在这里都可以下载到 xff0c 而且一直还有新的主题添加进来 xff1a 地址 xf
  • ubuntu usb权限问题解决

    在 etc udev rules d 创建51 android rules SUBSYSTEM 61 61 34 usb 34 ENV DEVTYPE 61 61 34 usb device 34 MODE 61 34 0666 34 SU
  • 关于onConfigurationChanged方法及常见问题解决

    本篇文章已授权微信公众号 guolin blog xff08 郭霖 xff09 独家发布 1 public void onConfigurationChanged Configuration newConfig 方法介绍 newConfig