0

我希望我的应用程序以最低 api 级别 8 运行...我尝试使用 android:configChanges="orientation|keyboardHidden"..在较低版本中,onConfigurationchanged() 方法被调用并处理方向..但是当我运行时3.2 及更高版本的 onConfigurationchanged() 不会被调用并重新创建活动。所以我添加了 android:configChanges="orientation|keyboardHidden|ScreenSize" 但是当我编译这个时我的应用程序不能在 3.2 ICS 以下的版本中运行..我应该怎么做才能处理从 2.2 到 4.0.1 的所有版本的配置更改而不重新- 创建活动?

4

2 回答 2

1

targetSdkVersion在清单中设置了吗?例如,

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="16" />

只要您的代码targetSdkVersion大于或等于13. 确保您也在针对 SDK 版本3.2或更高版本构建项目。

于 2012-07-30T04:29:21.797 回答
0

您还应该将参数“screenSize”添加到 android:configChanges="orientation|screenSize|keyboardHidden"

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

于 2013-01-23T15:05:34.920 回答