android橫屏豎屏切換時發生的事情

來源:互聯網
上載者:User

標籤:android   應用   手機   manifest   

在不少應用中都會發生出現螢幕方向改變,但是在改變的時候又會發生什麼事情呢?


我們寫一個app測試一下

代碼在這裡:http://download.csdn.net/detail/edwardwayne/8594291


我們在mainActivity中寫了android生命週期中幾個重要的階段onCreate,onResume,onStart,onDestory,onStop的方法


在其中都調用toast方法告訴我們這些階段有沒有觸發。


另外我們重寫onSaveInstanceState() 和 onRestoreInstanceState()


在他們裡面也一樣加上toast提示


這時候我們進入app,旋轉手機我們會發現依次出現了onStop,onSaveInstanceState,onDestroy,onCreate,onStart,onRestoreInstanceState,onResume


我們就可以明白,預設情況下改變方向app將會迴圈一次生命週期,在測試中這樣會比較容易導致app崩潰


為了避免這個情況,我們可以在manifest的activity中加入

android:configChanges="orientation|screenSize|keyboardHidden"
並且我們在mainActivity中加入

public void onConfigurationChanged(Configuration newConfig) {// TODO Auto-generated method stubsuper.onConfigurationChanged(newConfig);if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();}}

這時候我們再改變手機方向,我們就會發祥,app並沒有迴圈生命週期,而是觸發了onConfigurationChanged的方法。

至於keyboardHidden的作用則是在旋轉手機方向後隱藏keyboard。


android橫屏豎屏切換時發生的事情

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.