更改方向后在onCreate上输入的活动

时间:2013-12-03 09:53:55

标签: android

我遇到了以前没有用过的问题。

我正在使用Android 4.3的Galaxy Nexus,我遇到的问题是我在Manifest上以这种方式声明了一个Activity:

    <activity
        android:name=".Authorization"
        android:configChanges="orientation|keyboardHidden|screenSize"
        android:label="@string/app_name"
        android:windowSoftInputMode="adjustResize|stateHidden">
    </activity>

所以,当我改变手机的方向时,它会一次又一次地进入onCreate方法!!据我所知,如果我写

        android:configChanges="orientation|keyboardHidden|screenSize"

活动不应该再次进入onCreate .....

任何人都知道发生了什么?

非常感谢!

2 个答案:

答案 0 :(得分:2)

当然,活动不应该进入onCreate方法,因为它违反了lifecycle

但手机的开发者选项中有一个配置可以强制出现这种奇怪的情况。这不是你代码的错。

该选项称为“不要保留活动”,它用于在系统销毁活动时测试应用程序的行为(例如,当内存不足时)。

要更改它,请转到配置 - &gt;开发人员选项,在“应用”中,取消选中“不要保留活动”。

答案 1 :(得分:0)

感谢Rusmus,Bhr和praven sharma的答案,

正如Rusmus所说,在Android文档中,他们解释说,当你向Activity声明我做的标志时,Activity应调用onConfigurationChanged方法:

enter link description here

重点是,它还说明了以下内容:

  

现在,当其中一个配置发生变化时,MyActivity不会   重新开始。相反,MyActivity接到一个电话   onConfigurationChanged()

我真的不明白为什么在这款手机上它正在进入onCreate,而在使用Android 4.04的Galaxy SII上却没有发生。在我的三星Galaxy SII上,它不是一次又一次地使用orientationChanges重新进入onCreate()。

非常感谢!