防止旋转时重新启动活动

时间:2013-07-24 23:35:20

标签: android

我有一个在清单中使用以下sdk的应用程序:

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

为防止活动在屏幕旋转时重新启动,我添加到清单:

 android:configChanges="orientation|keyboardHidden|screenSize"

我是否还需要覆盖活动中的onConfigurationChanged,如下所示:

   @Override
 public void onConfigurationChanged(Configuration newConfig) {
 super.onConfigurationChanged(newConfig);
 setContentView(R.layout.myLayout);
 }

或清单中的这一行是否足够:

  android:configChanges="orientation|keyboardHidden|screenSize"

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:2)

  

防止活动在屏幕旋转时重新启动

这通常不是一个好主意。

  

我添加到清单:android:configChanges="orientation|keyboardHidden|screenSize"

这通常不是一个好主意。你所做的就是为自己创造更多的工作。您仍然必须拥有所有标准配置更改逻辑,以处理您未在其中列出的所有配置更改, plus 您可能需要单独处理这三种情况。

  

我是否需要覆盖onConfigurationChanged

这取决于您的UI是否因配置而异,对于android:configChanges中列出的配置(例如,肖像看起来与横向不同吗?)。如果答案是&#34;是&#34;,则onConfigurationChanged()是您为android:configChanges名单中列出的事件修复该UI的地方。如果答案是&#34; no&#34;,那么您不需要覆盖此方法。

答案 1 :(得分:0)

下面的清单文件足以阻止轮换:

android:configChanges="orientation|keyboardHidden|screenSize"

答案 2 :(得分:-2)

设置

android:screenOrientation="portrait"

根据Android - disable landscape mode?

的建议