问题:从A(PORTRAIT)打开B(LANDSCAPE),然后,又从A finish到B。 A会执行两次重载。切换两次屏幕(竖,横,竖)。
原因:从B返回时,系统仍然调用B的横屏状态,此时A会显示为B界面退出时的状态,即横屏状态,由于A界面设置为PORTRAIT,所以之后A会由竖屏切换为横屏在切换为竖屏。
1.在配置文件AndroidManifest.xml中添加如下代码:
<activity
android:name="AActivity"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="BActivity"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
android:screenOrientation="portrait" />
2.在BActivity中的onDestroy()中添加如下代码:
@Override
protected void onDestroy() {
super.onDestroy();
//解决切换到上个界面后,横竖屏多次切换的问题
if (android.os.Build.VERSION.SDK_INT >= 27) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
}
}