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() |
测试横竖屏时顺带测了切后台再显示,表格中三种情况都是切后台执行一次onPause()
,再显示执行两次onResume()
。
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()方法中添加对布局的改变方法
,至于添加什么方法还没有好的思路。
本文地址:https://blog.csdn.net/u012551120/article/details/107706688
如对本文有疑问, 点击进行留言回复!!
Execution failed for task ‘:app:checkDebugDuplicateClasses‘解决方案
android开发实例(activity生命周期和启动模式、IPC机制)
ndk-build使用Application.mk 如何构建文件
缟译后的第三方APK放到packages/apps/测试报错解决
方法废弃解决Environment.getExternalStorageDirectory(), Environment.getExternalStoragePublicDirectory()
Android 开发RecyclerView(回顾)+Context(介绍和结构)+Application(创建和作用)
android 支持java 8 stream api(不需要minSdkVersion 24)
网友评论