• android:configChanges属性总结


    文章目录

    前言

    Android中的组件Activity在manifest.xml文件中可以指定参数android:ConfigChanges,用于捕获手机状态的改变。在Activity中添加了android:configChanges属性,在当所指定属性(Configuration Changes)发生改变时,通知程序调用onConfigurationChanged()函数。

    Google官网链接:android:configChanges属性

    属性值

    设置方法:将下列字段用“|”符号分隔开,例如:“locale|navigation|orientation”

    “density” 显示密度的更改,例如当用户指定不同的显示比例或其他屏幕当前处于活跃状态时。
    “fontScale” 字体缩放比例的更改,例如当用户选择新的全局字体大小时。
    “keyboard” 键盘类型的更改,例如当用户插入外接键盘时。
    “keyboardHidden” 键盘无障碍功能的更改,例如当用户显示硬件键盘时。
    “layoutDirection” 布局方向的更改,例如从由左到右 (LTR) 改为由右到左 (RTL)。
    “locale” 语言区域的更改,例如当用户选择显示文本所用的新语言时。
    “mcc” 当系统检测到用于更新 MCC 的 SIM 卡时,IMSI 移动设备国家/地区代码 (MCC) 发生的更改。移动国家号码,由三位数字组成,每个国家都有自己独立的MCC,可以识别手机用户所属国家。
    “mnc” 移动网号,在一个国家或者地区中,用于区分手机用户的服务商。
    “navigation” 导航类型(轨迹球或方向键)更改。通常不会出现这种情况。
    “orientation” 屏幕方向的更改,例如用户旋转设备时。
    “screenLayout” 屏幕布局的更改,例如在其他屏幕变为活动状态时。
    “screenSize” 当前可用屏幕尺寸的更改。该值表示目前可用尺寸相对于当前宽高比的变更,当用户在横向模式与纵向模式之间切换时,它便会发生变更。
    “smallestScreenSize” 实体屏幕尺寸的更改。
    该值表示与方向无关的尺寸变更,因此它只有在实际物理屏幕尺寸发生变更(如切换到外部显示器)时才会变化。对此配置所作变更对应 smallestWidth 配置的更改。
    “touchscreen” 触摸屏的更改。通常不会出现这种情况。
    “uiMode” 界面模式的更改,例如当用户将设备放到桌面或车载基座上时,或者夜间模式发生变化时。

    总结

    1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次

    2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次

    3、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged()

    想阻止程序在运行时重新加载Activity,需要在AndroidManifest.xml文件中设置configChanges值,变化则会执行onConfigurationChanged()
    在Android 3.1(API 12)及以前版本:

    android:configChanges="orientation|keyboardHidden"
    
    • 1

    Android 4.0及以后版本:

    android:configChanges="keyboardHidden|orientation|screenSize"
    
    • 1
  • 相关阅读:
    RocketMQ源码解析-topic创建机制
    WiFi-IoT 鸿蒙开发套件样例开发
    Go-知识测试-模糊测试
    Docker 在 M1 Mac arm64架构上构建 amd64镜像。
    信奥中的数学:抽屉原理
    【MySQL系列】索引的学习及理解
    矢量图形编辑软件 illustrator 2023 mac 中文软件特点
    《Effective STL》读书笔记(三):关联容器
    敏捷开发工具:提升软件研发效率的重要利器
    Java8 Lambda 表达式
  • 原文地址:https://blog.csdn.net/qq_43357394/article/details/133698293