我在告诉Android onCreate()方向更改时不打电话时遇到了麻烦。我已添加android:configChanges="orientation"到清单中,但仍在onCreate()调用方向更改时添加。这是我的代码。
onCreate()
android:configChanges="orientation"
AndroidManifest.xml
<activity android:name="SearchMenuActivity" android:theme="@android:style/Theme.NoTitleBar" android:configChanges="orientation"></activity>
SearchMenuActivity.java
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Set the current layout to the search_menu setContentView(R.layout.search_menu_activity); Log.d(TAG, "onCreate() Called"); } @Override public void onConfigurationChanged(Configuration newConfig) { //don't reload the current page when the orientation is changed Log.d(TAG, "onConfigurationChanged() Called"); super.onConfigurationChanged(newConfig); }
还有我的LogCat输出
06-23 12:33:20.327: DEBUG/APP(2905): onCreate() Called //Orientation Changes 06-23 12:33:23.842: DEBUG/APP(2905): onCreate() Called
有人知道我在做什么错吗?谢谢。
要尝试的几件事:
android:configChanges="orientation|keyboardHidden|screenSize" 而不是 android:configChanges="orientation"
android:configChanges="orientation|keyboardHidden|screenSize"
确保您没有setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);在任何地方打电话。这将导致onConfigurationChange()无法触发。
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
检查android:screenOrientation清单中是否没有使用。
android:screenOrientation
如果这些都不起作用,请通读Android文档以处理运行时更改,并确保您正确执行了所有操作。您的代码中的其他地方可能会引起问题。http://developer.android.com/guide/topics/resources/runtime- changes.html
编辑:正如derrik指出的那样,我假设您正在使用加速度计更改设备配置,以检测设备朝向的方向。如果要在显示/隐藏键盘时更改配置,清单中的configChanges也必须包括在内keyboardHidden。
keyboardHidden