android:configChanges似乎被忽略了

6
我尝试防止在旋转设备时调用onCreate()方法。为了实现这个目标,我遵循文档并添加了以下代码:
<activity android:name=".TabActivity"
          android:label="@string/app_name"
          android:configChanges="orientation">
     <intent-filter>
          <action android:name="android.intent.action.MAIN" />
          <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
</activity>

将权限加入清单文件中。然后我将以下内容插入到 Activity 的源代码中:

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

但是似乎安卓系统忽略了这个方法。我在这里设置的断点从未被触发。

我错在哪里了?这是使用选项卡时的问题吗?

谢谢!


你的代码看起来没问题。你尝试在onCreate()中设置断点来确定当你切换设备方向时是否会再次执行它(根据你所说,不应该执行)了吗? - Shlublu
1
刚才下面的帖子里有一个很好的解释,是Felix提供的。 - J H
1个回答

5

试试这个:

  android:configChanges="orientation|keyboardHidden"

1
+1 这是正确的解决方案。如果不行,尝试添加 keyboard - Felix
3
由于模拟器(和一些设备)具有物理(模拟的)键盘,因此当你旋转它时,它实际上发送了keyboardHiddenorientation配置更改,因为它基本上是模拟弹出物理键盘。 - Felix

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接