【问题标题】:how to handle configuration change in android from lower versions(2.2) to ICS(3.2) and higher如何处理 android 中从较低版本(2.2)到 ICS(3.2)及更高版本的配置更改
【发布时间】:2012-07-27 18:14:26
【问题描述】:

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

【问题讨论】:

    标签: android orientation


    【解决方案1】:

    您还应该将参数“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 或更高版本的设备上运行时也是如此)。

    【讨论】:

      【解决方案2】:

      您是否在清单中设置了targetSdkVersion?例如,

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

      只要您的targetSdkVersion 大于或等于13,您的代码就应该可以工作。确保您是针对 SDK 版本 3.2 或更高版本构建项目。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-02-03
        • 2011-11-14
        • 1970-01-01
        • 1970-01-01
        • 2012-02-05
        • 1970-01-01
        • 2022-11-23
        • 1970-01-01
        相关资源
        最近更新 更多