在开发中我们经常会遇到横竖屏切换的场景,那么在这些场景下,Activity的生命周期是一个怎么样的调用呢,本文中我们打印日志记录了一个Activity横竖屏切换时的生命周期的调用,方便以后开发过程中的查阅和记忆。

1. 设置横屏

在AndroidManifest.xml文件中对应的Activity加上如下标签:

1
android:screenOrientation="landscape"

该Activity将会设置为横屏。

2. 横屏旋转时生命周期

横屏竖屏切换时,系统会走该应用所有生命周期

这里需要注意,横屏切换竖屏时,会执行一次OnCreat和两次OnRestart。

竖屏切换横屏时,会执行一次OnRestart和一次OnCreat。

3. 设置横竖屏切换时,不执行生命周期

在AndroidManifest.xml文件中对应的Activity加上如下标签:

1
android:configChanges="orientation|keyboardHidden|screenSize"

切记一定要加上后边的screenSize否则在4.0以上版本不生效。

加上后,再次进行切换,则不会重复执行生命周期,只是执行

1
2
3
4
5
@Override
public void onConfigurationChanged(Configuration newConfig) {
Log.e(TAG, "监听到横竖屏切换");
super.onConfigurationChanged(newConfig);
}

加上后执行过程如下:

需要注意的是,折叠屏适配许多工作都在onConfigurationChanged中完成