關於Android的Activity的onCreate多次調用的問題

來源:互聯網
上載者:User

今天用華為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);
    }

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.