从具有不同screenOrientation设置的Activity返回后未调用onConfigurationChanged

问题描述 投票:1回答:2

我有两个活动:

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

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

android screen-orientation onconfigurationchanged
2个回答
0
投票

我找到了一个解决方法,在MainActivity中我将requestedOrientation称为延迟一小段时间。

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

-1
投票

你打电话给这个代码了吗?

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

@Override
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
    super.onSaveInstanceState(outState, outPersistentState);
}
© www.soinside.com 2019 - 2024. All rights reserved.