onConfigurationChanged() 在清单具有清单方向标记时未被调用



我已经查看了这个问题的许多其他帖子,最常见的解决方案是确保您的清单中包含以下内容:

<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() 的调用。此方法传递一个指定新设备配置的配置对象。

最新更新