android:configchanges
切橫屏生命週期
切豎屏生命週期
總結不設定
onpause()
ondestroy()
oncreate()
onresume()
onpause()
ondestroy()
oncreate()
onresume()
橫豎屏切換activity都只重新建立一次。
(網上說的切橫屏oncreate()執行乙個,切豎屏oncreate()執行兩次應該是android早期版本的效果,現在都只建立一次)
「orientation|keyboardhidden」
onpause()
ondestroy()
oncreate()
onresume()
onpause()
ondestroy()
oncreate()
onresume()
同不設定,橫豎屏切換activity都只重新建立一次。
(網上說的只設定這個就可以不用重新建立activity,也是android早期版本的效果,現在還需要加screensize)
「orientation|keyboardhidden|screensize」
onconfigurationchanged()
onconfigurationchanged()
不論怎麼轉都只執行onconfigurationchanged()
測試橫豎屏時順帶測了切後台再顯示,**中三種情況都是切後台執行一次onpause()
,再顯示執行兩次onresume()
。在onrestart()
方法中也列印了onresume
導致認為執行了兩次onresume()
,其實再顯示是先執行了一次onrestart()
,再執行一次onresume()
。
具體 activity 生命週期如下表:首次建立
跳轉其它activity
或切後台
或息屏再顯示
銷毀oncreate()
onstart()
onresume()
onpause()
onstop()
onrestart()
onstart()
onresume()
onpause()
onstop()
ondestroy()
除了跳轉其它activity、切後台、息屏會觸發生命週期的onpause、onstop,其它覆蓋activity的情況都不會影響生命週期,具體情況有:
android:configchanges
不設定或者只設定"orientation|keyboardhidden",activity的oncreate()方法會重新執行,會重新觸發setcontentview(r.layout.***x),系統會根據螢幕橫豎屏狀態再次選擇使用layout-land中布局還是layout-port中布局。
android:configchanges
設定"orientation|keyboardhidden|screensize",activity只執行onconfigurationchanged(),所以橫豎屏切換前顯示的是layout-land和layout-port中的哪種布局,切換後顯示的還是那種布局,要想切換必須在onconfigurationchanged()方法中新增對布局的改變方法
,至於新增什麼方法還沒有好的思路。
android 橫豎屏切換
private onclicklistener onclick new onclicklistener else 監聽系統設定的更改 override public void onconfigurationchanged configuration newconfig 在4.0以後需要加上scree...
Android 橫豎屏切換
今天老闆讓我看看有沒有辦法能讓我的背景桌布自己橫豎螢幕切換,今天發表下研究的成果。1.首先有時候開發的時候需要強制橫屏或者豎屏的時候,只需要在androidmanifest.xml中設定activity的android screenorientatation屬性就行了。unspecified 預設值...
Android橫豎屏切換
在 androidmanifest.xml 檔案的activity 設定android screenorentation 屬性 unspecified 預設值 由系統來判斷顯示方向.判定的策略是和裝置相關的,所以不同的裝置會有不同的顯示方向.landscape 橫屏顯示 寬比高要長 portrait...