2 hxn 217 hxn_217 于 2012.10.19 16:43 提问

Android中的onConfigurationChanged方法不能被调用

在Android程序设置中,当转化屏幕方向时,系统告知不能调用onCreate()方法。
我在manifest上添加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);

    setContentView(R.layout.search_menu_activity);

    Log.d(TAG, "onCreate() Called");
}
@Override
public void onConfigurationChanged(Configuration newConfig) {

    Log.d(TAG, "onConfigurationChanged() Called");
    super.onConfigurationChanged(newConfig);
}

LogCat Output

10-19 12:33:20.327: DEBUG/APP(2905): onCreate() Called
//转化屏幕方向
10-19 12:33:23.842: DEBUG/APP(2905): onCreate() Called

请求大家帮忙指点出错的地方。谢谢!

3个回答

franzhong
franzhong   2012.10.22 11:51
已采纳

自从Android 3.2(API 13),screen size也开始跟着设备的横竖切换而改变。
所以,在AndroidManifest.xml里设置的MiniSdkVersion和 TargetSdkVersion属性大于等于13的情况下,
如果你想阻止程序在运行时重新加载Activity,除了设置"orientation",你还必须设置"ScreenSize"。
解决方法:
AndroidManifest.xml中设置android:configChanges="orientation|screenSize“

u013670933
u013670933 解决问题,THX
大约 2 年之前 回复
xiaoyan_12
xiaoyan_12   2012.10.22 10:41

在 AndroidManifest.xml中改变configChanges条目android:configChanges="keyboardHidden|orientation" 
否则,旋转屏幕时,滑动键盘不触发onConfigurationChange()方法。这个方法我测试过HTC Desire Z。

chuming0311
chuming0311   2014.04.25 23:18

android:name="SearchMenuActivity" 这个应该前面有一点吧 表示当前路径下面的包 android:name=".SearchMenuActivity",如果你没改什么路径就应该有一个点的表示当前路径,如果改了 就可能是其他情况,希望对你有帮助,我也刚刚学的。。

Csdn user default icon
上传中...
上传图片
插入图片