我已经查看了这个问题的许多其他帖子,最常见的解决方案是确保您的清单中包含以下内容:
<activity android:name=".activities.myActivity"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize">
这个子已经在我的清单中,我没有强迫我的活动方向为横向或纵向,但配置更改(...)没有被调用。
我的 onConfigureationChanged(...) 函数如下所示,我没有收到 logcat 输出:
@Override
public void onConfigurationChanged(Configuration newConfig) {
Logger.e(getClass().getSimpleName(), "onConfigurationChanged()");
super.onConfigurationChanged(newConfig);
}
我还通过在onCreate()和onPause()中添加记录器来验证活动没有经历标准生命周期。
OnConfigurationChanged 仅在 AndroidManifest.xml 中的指定配置发生变化时才会被调用。例如,此方法将在屏幕更改后调用。如果我理解,您的应用程序的配置不会更改。
来自安卓文档:
例如,以下清单代码声明处理屏幕方向更改和键盘可用性更改的活动:
<activity android:name=".MyActivity"
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name">
现在,当其中一个配置发生更改时,"我的活动"不会重新启动。相反,MyActivity 接收对 onConfigurationChanged() 的调用。此方法传递一个指定新设备配置的配置对象。