【Android】解决Android横竖屏切换数据丢失问题的方法

解决方案1:在Androidmanifest.xml的activity标签中加入android:screenOrientation="portrait",可以屏蔽横屏

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

screenOrientation有如下选项:

1.unspecified 默认值,由系统判断状态自动切换

2.landscape 横屏

3. portrait 竖屏

4.user 用户当前设置的orientation值

5. behind 下一个要显示的Activity的orientation值

6. sensor 使用传感器 传感器的方向

7. nosensor 不使用传感器 基本等同于unspecified

解决方案2:在Androidmanifest.xml的activity标签中加入android:configChanges="orientation|keyboardHidden|screenSize"

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

configChanges属性可以设置多个值,中间使用竖线分割;

1. orientation 屏幕在纵向和横向间旋转

2.keyboardHidden 键盘显示或隐藏

3.screenSize 屏幕大小改变了

4.fontScale 用户变更了首选的字体大小

5.locale 用户选择了不同的语言设定

6.keyboard 键盘类型变更,例如手机从12键盘切换到全键盘 7.touchscreen或navigation 键盘或导航方式变化,一般不会发生这样的事件

之前网上查到很多都是说设置了“orientation“和”keyboardHidden”属性,但是效果并没有用,需要增加设置screenSize三个值才行。

如果只设置”orientation|screenSize”,会发生竖屏变横屏生命周期会有先销毁后重新onCreate,如果是横屏变竖屏生命周期方法不会被回调!

原文地址:https://www.cnblogs.com/mqxs/p/8504561.html