原因:
1. 橫豎屏旋轉
2. 系統啟動後,搜尋到可用移動網路
會觸發onCreate方法,在開啟應用程式後,碰到上面兩種情況會銷毀當前Activity,然後重啟一個新的Activity執行個體.
解決方案:
1. AndroidManifest.xml中增加下面的設定
android:configChanges="mcc|mnc|orientation|keyboardHidden"
2. 重載下面的方法
@Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); // 檢測螢幕的方向:縱向或橫向 if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { //當前為橫屏, 在此處添加額外的處理代碼 } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { //當前為豎屏, 在此處添加額外的處理代碼 } //檢測實體鍵盤的狀態:推出或者合上 if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO){ //實體鍵盤處於推出狀態,在此處添加額外的處理代碼 } else if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_YES){ //實體鍵盤處於合上狀態,在此處添加額外的處理代碼 } }
reference:
http://www.cnblogs.com/hibraincol/archive/2010/09/18/1829862.html
http://www.linuxidc.com/Linux/2012-01/50845.htm