在告诉安卓在方向改变时不要调用onCreate()时,我遇到了麻烦。我已经在清单中添加了android:configChanges="orientation",但仍然会在方向发生变化时调用onCreate()。这是我的代码。
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有人知道我做错了什么吗?谢谢。
发布于 2011-06-24 01:07:19
有几件事可以试一试:
android:configChanges="orientation|keyboardHidden|screenSize"而不是android:configChanges="orientation"
确保您没有调用setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); anywhere。这将导致onConfigurationChange()无法触发。
检查您的清单中是否没有使用android:screenOrientation。
如果这些都不起作用,请通读Android文档中关于处理运行时更改的内容,并确保所有操作都是正确的。可能是代码中的其他地方导致了这个问题。http://developer.android.com/guide/topics/resources/runtime-changes.html
编辑:正如derrik所指出的,我假设你正在改变配置,让加速度计检测设备面对的方向。如果您希望在显示/隐藏键盘时更改配置,则清单中的configChanges也必须包含keyboardHidden。
发布于 2011-09-10 02:54:03
这是我的小精灵,解决了同样的问题:
警告:从Android3.2(API13级)开始,当设备在纵向和横向之间切换时,“屏幕尺寸”也会发生变化。因此,如果您希望防止在为API13级或更高级别(由minSdkVersion和targetSdkVersion属性声明)进行开发时由于方向更改而导致运行时重新启动,则除了" orientation“值之外,还必须包括"screenSize”值。也就是说,您必须取消android:configChanges="orientation|screenSize".但是,如果您的应用程序以API级别12或更低为目标,那么您的activity将始终自行处理此配置更改(此配置更改不会重新启动您的activity,即使在Android 3.2或更高版本的设备上运行)。
(来自http://developer.android.com/guide/topics/resources/runtime-changes.html)
TL;DR:在14+接口的android:configChanges=“方向”中添加"|screenSize“
发布于 2013-01-17 15:07:24
试着用这个.....
android:configChanges="orientation|keyboardHidden|screenSize"https://stackoverflow.com/questions/6457659
复制相似问题