Android onCreate方法被調用兩次的解決方法

原因:

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

發佈了28 篇原創文章 · 獲贊 13 · 訪問量 95萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章