Android横竖屏切换测试记录

横竖屏切换测试记录

  • 华为M6 (android 10)
    • 1. 横竖屏切换
    • 2. 切后台再显示
    • 3. 横竖屏切换变换layout-land和layout-port布局

华为M6 (android 10)

1. 横竖屏切换

android:configChanges 切横屏生命周期 切竖屏生命周期 总结
不设置 onPause()
onDestroy()
onCreate()
onResume()
onPause()
onDestroy()
onCreate()
onResume()
横竖屏切换activity都只重新创建一次。
网上说的切横屏onCreate()执行一个,切竖屏onCreate()执行两次应该是android早期版本的效果,现在都只创建一次
“orientation|keyboardHidden” onPause()
onDestroy()
onCreate()
onResume()
onPause()
onDestroy()
onCreate()
onResume()
同不设置,横竖屏切换activity都只重新创建一次。
网上说的只设置这个就可以不用重新创建activity,也是android早期版本的效果,现在还需要加screenSize
“orientation|keyboardHidden|screenSize” onConfigurationChanged() onConfigurationChanged() 不论怎么转都只执行onConfigurationChanged()

2. 切后台再显示

测试横竖屏时顺带测了切后台再显示,表格中三种情况都是切后台执行一次onPause(),再显示执行两次onResume()

3. 横竖屏切换变换layout-land和layout-port布局

android:configChanges 不设置或者只设置"orientation|keyboardHidden",activity的onCreate()方法会重新执行,会重新触发setContentView(R.layout.xxxx),系统会根据屏幕横竖屏状态再次选择使用layout-land中布局还是layout-port中布局。

android:configChanges 设置"orientation|keyboardHidden|screenSize",activity只执行onConfigurationChanged(),所以横竖屏切换前显示的是layout-land和layout-port中的哪种布局,切换后显示的还是那种布局,要想切换必须在onConfigurationChanged()方法中添加对布局的改变方法,至于添加什么方法还没有好的思路。

你可能感兴趣的:(android)