正常横竖屏切换的生命周期:
onPause()->onSaveInstanceState()-> onStop()->onDestroy()->onCreate()->onStart()->onRestoreInstanceState->onResume()

android:configChanges=“xxx” 详解:

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

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

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

VALUEDESCRIPTION
“mcc”国际移动用户识别码所属国家代号是改变了----- sim被侦测到了,去更新mcc mcc是移动用户所属国家代号
“mnc”国际移动用户识别码的移动网号码是改变了------ sim被侦测到了,去更新mnc MNC是移动网号码,最多由两位数字组成,用于识别移动用户所归属的移动通信网
“locale”地址改变了-----用户选择了一个新的语言会显示出来
“touchscreen”触摸屏是改变了------通常是不会发生的
“keyboard”键盘发生了改变----例如用户用了外部的键盘
“keyboardHidden”键盘的可用性发生了改变
“navigation”导航发生了变化-----通常也不会发生
“screenLayout”屏幕的显示发生了变化------不同的显示被激活
“fontScale”字体比例发生了变化----选择了不同的全局字体
“uiMode”用户的模式发生了变化
“orientation”屏幕方向改变了
“screenSize”屏幕大小改变了
“smallestScreenSize”屏幕的物理大小改变了,如:连接到一个外部的屏幕上

实际上会回调的方法:

@Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
    }

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐