Android 从具有不同屏幕方向设置的活动返回后,未调用OnConfiguration Changed

Android 从具有不同屏幕方向设置的活动返回后,未调用OnConfiguration Changed,android,screen-orientation,onconfigurationchanged,Android,Screen Orientation,Onconfigurationchanged,我有两项活动: <activity android:name=".ui.MainActivity" android:configChanges="orientation|screenSize" /> <activity android:name=".ui.DetailActivity" android:screenOrientation="landscape" /> 在某些设备/模拟器上,我有一个奇怪的错误:当我从DetailActivi

我有两项活动:

<activity
    android:name=".ui.MainActivity"
    android:configChanges="orientation|screenSize" />
<activity
    android:name=".ui.DetailActivity"
    android:screenOrientation="landscape" />
在某些设备/模拟器上,我有一个奇怪的错误:当我从DetailActivity返回MainActivity时,设备将不再调用OnConfiguration Changed,直到我单击Options菜单项。单击选项菜单后,它工作正常。以编程方式打开选项菜单,但不起作用。
更令人困惑的是,这种情况只发生在少数几个设备或模拟器上,它们有不同的Android版本。

您是否调用了此代码

    @Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
}

@Override
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
    super.onSaveInstanceState(outState, outPersistentState);
}

我找到了一个解决方法,在我称为requestedOrientation的主要活动中,有一点延迟

override fun onResume() {
    super.onResume()
    Handler().postDelayed(Runnable {
        requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
    }, 500)
}

不,我没有覆盖这些方法-我不是说覆盖这些方法,我是说你在你的类中写了这些方法吗?不,如果我不覆盖它们,没有必要。但是有必要定义它们。你是什么意思?您发布的代码无效。