問題:從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);
}
}