Android 横竖屏切换配置

1. startActivity 之后的生命周期

onCreate()
onStart()
onPostCreate()
onResume()
onPostResume()

2. 调用 finish 之后调用的生命周期

onPause()
onStop()
onDestroy()

3. 默认情况下旋转屏幕调用的生命周期

onPause()
onStop()
onDestroy()
onCreate()
onStart()
onPostCreate()
onResume()
onPostResume()

所以在不做任何设置的情况会,当旋转屏幕之后 activity 会先销毁再创建。此时如果界面上有一个 edittext 控件,那么经过屏幕旋转之后之前输入的内容就丢失了。

为了旋转之后不丢失数据,需要设置 activity 不销毁重建。

4. 配置横竖屏切换不销毁activity

在 AndroidManifest.xml 文件 activity 的定义处添加

<activity 
    android:name=".activity.LoginActivity"
    android:configChanges="orientation|screenSize" />

然后每次旋转屏幕之后会调用方法

onConfigurationChanged()

成功解决销毁重建导致的数据消失问题。

  • 之前看其他文章都会设置 keyboardHidden, 亲测在没有外接键盘的情况下有没有这个设置表现是一样的。因为手边没有手机可用的外接键盘所以不确定到时候会发生什么。

5. 设置只支持竖屏

<activity 
    android:name=".activity.LoginActivity"
    android:screenOrientation="portrait" />

推荐阅读更多精彩内容