【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,如果是横屏变竖屏生命周期方法不会被回调!