我有两个活动:
<activity
android:name=".ui.MainActivity"
android:configChanges="orientation|screenSize" />
<activity
android:name=".ui.DetailActivity"
android:screenOrientation="landscape" />
在某些设备/模拟器上,我有一个奇怪的错误:当我从DetailActivity返回到MainActivity时,设备将不再调用onConfigurationChanged
,直到我单击OptionsMenu项目。单击OptionsMenu后,它工作正常。以编程方式打开OptionsMenu但不起作用。更令人困惑的是,它只发生在具有不同Android版本的少数设备或模拟器上。
我找到了一个解决方法,在MainActivity中我将requestedOrientation
称为延迟一小段时间。
override fun onResume() {
super.onResume()
Handler().postDelayed(Runnable {
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
}, 500)
}
你打电话给这个代码了吗?
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
}
@Override
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
super.onSaveInstanceState(outState, outPersistentState);
}