3

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

我通过在活动标签的 Manifest.xml 文件中设置这一行来解决 Honeycomb (3.1) 上的这个问题,它运行良好。

          android:configChanges="keyboardHidden|orientation"

但是当我在 ICS 平板电脑上测试我的应用程序时,这个问题又出现了。有谁知道如何解决这个问题?

谢谢

问候。

4

3 回答 3

10

如果您的目标是API level > 13您必须添加screenSize文档中报告的标志:

  android:configChanges="keyboardHidden|orientation|screenSize"
于 2012-09-28T08:31:17.167 回答
3

onCreate()将始终被调用,因为当方向更改时,始终会重新创建 Activity。没有什么不妥。您应该为此实施适当的行为,或者通过添加orientation=horizo​​ntal来禁用更改方向的可能性,例如

于 2012-09-28T08:12:10.883 回答
0

注意:从 Android 3.2(API 级别 13)开始,当设备在纵向和横向之间切换时,“屏幕尺寸”也会发生变化。因此,如果您想在为 API 级别 13 或更高级别(由 minSdkVersion 和 targetSdkVersion 属性声明)开发时防止由于方向更改而导致运行时重新启动,则除了“orientation”值之外,还必须包含“screenSize”值。也就是说,您必须声明android:configChanges="orientation|screenSize "。但是,如果您的应用程序以 API 级别 12 或更低级别为目标,那么您的 Activity 始终会自行处理此配置更改(此配置更改不会重新启动您的 Activity,即使在 Android 3.2 或更高版本的设备上运行时也是如此)。

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

于 2016-12-01T07:29:32.523 回答