从具有不同屏幕的活动返回后未调用onConfigurationChanged

时间:2019-03-07 10:11:18

标签: android screen-orientation onconfigurationchanged

我有两个活动:

<activity
    android:name=".ui.MainActivity"
    android:configChanges="orientation|screenSize" />
<activity
    android:name=".ui.DetailActivity"
    android:screenOrientation="landscape" />

在某些设备/仿真器上,我遇到一个奇怪的错误:当我从DetailActivity返回到MainActivity时,该设备将不再调用onConfigurationChanged,直到我单击OptionsMenuItem为止。单击选项菜单后,它可以正常工作。以编程方式打开OptionsMenu,但是不起作用。 更令人困惑的是,它仅在具有不同Android版本的少数设备或模拟器上发生。

2 个答案:

答案 0 :(得分:0)

我发现了一个变通方法,在MainActivity中,我稍稍延迟就叫requestedOrientation

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

答案 1 :(得分:-1)

您叫这个密码吗?

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

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