0

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

<activity android:name=".activities.myActivity" 
        android:configChanges="orientation|keyboard|keyboardHidden|screenSize">

这个子已经在我的清单中,我没有强制我的活动方向为横向或纵向,但未调用 onConfigurationChanged(...)。

我的 onConfigureationChanged(...) 函数如下,我没有收到 logcat 输出:

@Override
public void onConfigurationChanged(Configuration newConfig) {

    Logger.e(getClass().getSimpleName(), "onConfigurationChanged()");

    super.onConfigurationChanged(newConfig);
}

我还通过在 onCreate() 和 onPause() 中添加记录器来验证活动没有经过标准生命周期。

4

1 回答 1

0

只有当 AndroidManifest.xml 中的指定配置发生变化时,才会调用 OnConfigurationChanged。例如,这个方法会在屏幕方向改变后被调用。如果我理解,您的应用程序的配置不会改变。

Android 文档

例如,以下清单代码声明了一个处理屏幕方向更改和键盘可用性更改的活动:

<activity android:name=".MyActivity"
      android:configChanges="orientation|keyboardHidden"
      android:label="@string/app_name">

现在,当这些配置之一发生更改时,MyActivity 不会重新启动。相反,MyActivity 收到对 onConfigurationChanged() 的调用。此方法传递一个配置对象,该对象指定新的设备配置。

于 2012-11-20T19:11:32.937 回答