Android onCreate()方法在设备旋转时调用两次。 (ICS)

时间:2012-09-28 08:09:06

标签: android

我正在开发Android平板电脑应用程序,我必须管理应用程序方向。我遇到了一个问题,每当我旋转设备onCreate()时都会被调用。

我通过在活动标记的Manifest.xml文件中设置此行来修复Honeycomb(3.1)上的此问题,并且它运行良好。

          android:configChanges="keyboardHidden|orientation"

但是当我在ICS Tablet上测试我的应用程序时,这个问题又回来了。有谁知道如何解决这个问题?

谢谢

问候。

3 个答案:

答案 0 :(得分:10)

如果您定位API level > 13,则必须添加文档中报告的screenSize标记:

  android:configChanges="keyboardHidden|orientation|screenSize"

答案 1 :(得分:3)

始终会调用

onCreate(),因为当方向更改时,始终会重新创建活动。没有什么不妥。您应该为此实现正确的行为,或者通过添加orientation = horizo​​ntal to manifest例如

来禁用更改方向的可能性

答案 2 :(得分:0)

警告:从Android 3.2(API级别13)开始,"屏幕大小"当设备在纵向和横向之间切换时也会发生变化。因此,如果要在开发API级别13或更高级别(由minSdkVersion和targetSdkVersion属性声明)时由于方向更改而阻止运行时重新启动,则必须包含" screenSize"价值以及"方向"值。也就是说,你必须声明 android:configChanges =" orientation | screenSize "。但是,如果您的应用程序的目标是API级别12或更低,那么您的活动始终会自行处理此配置更改(即使在Android 3.2或更高版本的设备上运行,此配置更改也不会重新启动您的活动。)

参考:https://developer.android.com/guide/topics/resources/runtime-changes.html