在android 8.1中,活动自动旋转并恢复正常

在android 8.1中,活动自动旋转并恢复正常,android,android-manifest,android-orientation,android-8.1-oreo,Android,Android Manifest,Android Orientation,Android 8.1 Oreo,我的应用程序在所有android版本中都运行良好,但我注意到,在android 8.1.0(Oreo)中,当我将屏幕从纵向活动切换到横向活动时,当我按下后退按钮时,它会显示异常行为 屏幕从横向自动旋转并恢复正常。 看起来活动正在自行重新启动 下面是清单文件中定义的活动 <activity android:name=".Home.TrainingsActivity" android:configChanges="keyboardHidden|orientation|scree

我的应用程序在所有android版本中都运行良好,但我注意到,在android 8.1.0(Oreo)中,当我将屏幕从纵向活动切换到横向活动时,当我按下后退按钮时,它会显示异常行为

屏幕从横向自动旋转并恢复正常。 看起来活动正在自行重新启动

下面是清单文件中定义的活动

<activity
    android:name=".Home.TrainingsActivity"
    android:configChanges="keyboardHidden|orientation|screenSize|layoutDirection|locale"
    android:screenOrientation="portrait" />

<activity
    android:name=".Home.ProgrammeActivity"
    android:configChanges="keyboardHidden|orientation|screenSize|layoutDirection|locale"
    android:screenOrientation="landscape" />

我们在奥利奥也面临同样的问题。我们实际上无法解释为什么它会发生在特定的操作系统版本上。但我们确实有办法解决这个问题。 完成横向活动时,可以向纵向添加力方向。 在ProgrammeActivity中使用onBackPressed()方法添加此项

 @Override
public void onBackPressed() {
    super.onBackPressed();
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}

这应该可以解决这个异常行为:)

让我试试这个解决方案。感谢您的快速回复:)如果这对您有所帮助,将不胜感激。您可以使用baseActivity处理此问题,如果您已经编写了其他内容,请编写逻辑LandScapeBaseActivity,并从中继承这些活动。感谢此解决方案!!,我已经在这个问题上坐了两个小时了..>很好,这解决了问题,非常感谢您,因为任何一个都不起作用,请保留onDestroy()方法。