Android,当我旋转设备时如何不破坏活动?

我有一个只能在肖像模式下工作的应用程序,我已经在我的清单文件中对每个活动的方向进行了更改。 但是当我旋转设备,活动再次重新创build。 如何不破坏活动?

对于API 12及以下版本 :添加

android:configChanges="orientation" 

如果您定位的是API 13或更高版本 ,请添加“screenSize” 因为每当您的方向发生变化时,您的屏幕尺寸也会变化,否则新设备将继续破坏您的活动。 有关使用“screenSize”的更多信息,请参阅下面的蛋的答案。

 android:configChanges="orientation|screenSize" 

到AndroidManifest.xml中的Activity。 这样你的活动将不会自动重新启动。 有关更多信息,请参阅文档

从弗林说,

注意:如果您的应用程序的目标API级别为13或更高(由minSdkVersion和targetSdkVersion属性声明),则还应该声明“screenSize”configuration,因为当设备在纵向和横向之间切换时,configuration也会更改。

因此,如果您的应用定位到API级别13或更高,则应该设置此configuration:

android:configChanges="orientation|screenSize"

正确的解决scheme是

机器人:configChanges = “方向|屏幕尺寸”

Android文档:

当前可用的屏幕尺寸已更改。 这表示当前可用尺寸相对于当前宽高比的变化,所以当用户在横向和纵向之间切换时将会改变。 但是,如果您的应用程序的目标级别为12或更低,那么您的活动始终会自行处理此configuration更改(即使在Android 3.2或更高版本的设备上运行,此configuration更改也不会重新启动您的活动)。

看浮动图像中的这个代码。 它有最有趣的方式来处理屏幕旋转。 http://code.google.com/p/floatingimage/source/browse/#svn/trunk/floatingimage/src/dk/nindroid/rss/orientation

写清单:

 android:configChanges="orientation|screenSize|keyboardHidden" 

并在解决您的问题的活动中覆盖此项:

  @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); }