今天用華為8600運行項目,突然看到onCreate被執行了兩次!
如此詭異的事情怎能容忍繼續存在!
當然,一開始是發現項目進不去,經過列印,發現是onDestory被自動調用了,
也就是onCreate -> onResume -> onPause -> onStop -> onDestory這樣執行了一遍,項目就自動結束來了。
不想怕麻煩,然後我把onDestory去掉了,然後我發現項目雖然能正常運行,但onCreate竟然執行了兩遍!
找了下資料,網上已經有人遇到過類似的問題,參考http://www.iteye.com/problems/60504,終於搞定了這個問題。
但是gundumw100沒有把AndroidManifest.xml檔案的圖示給出,看起來還是有點累,所以我把解決方案給詳細點,方便遇到同樣問題的同學們查看。
,紅色部分為修改部分。
這時onCreate多次調用的問題,就已經搞定了,緊緊是添加一句android:configChanges="orientation|keyboardHidden"而已。
當然,你也可以在Activity裡面重載一下onConfigurationChanged,處理你切換橫豎屏時的處理,因為加了上面的代碼後,橫豎螢幕切換也不調用onCreate了。
@Override
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
System.out.println("ORIENTATION_LANDSCAPE="
+ Configuration.ORIENTATION_LANDSCAPE);// 當前為橫屏
} else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
System.out.println("ORIENTATION_PORTRAIT="
+ Configuration.ORIENTATION_PORTRAIT);// 當前為豎屏
}
super.onConfigurationChanged(newConfig);
}