1. 程式人生 > >android Activity切換屏 生命週期變化問題

android Activity切換屏 生命週期變化問題

1、不設定Activity的android:configChanges時,切屏會重新呼叫各個生命週期,切橫屏時會執行一次,切豎屏時會執行兩次

2、設定Activity的android:configChanges="orientation"時,切屏還是會重新呼叫各個生命週期,切橫、豎屏時只會執行一次

3、設定Activity的android:configChanges="orientation|keyboardHidden"時,切屏不會重新呼叫各個生命週期,只會執行onConfigurationChanged方法。(執行這個方法,必須設定sdk version 大於等於13.0) 然後,我對”切豎屏執行兩次“感到不解,然後又再網上找了資料:(兩個說法)
1,當推出鍵盤的時候,會觸發硬體的改變,使手機豎屏變成了橫屏2,當推進鍵盤的時候,合上手機的一刻,觸發的是同一樣的韌體,由於,韌體是無法辨別那個是推進,和推出,發出的是一樣的訊號,然後系統就會認為這是一個橫屏改變。 2.實際上,模擬器的翻轉是以一個逆時針的方向旋轉...你按兩次 ctrl + f11實際上是翻轉了三次... 但是,我在我的華為榮耀6上,系統為4.4上切換橫屏和豎屏,最後的結果是這樣的: 1、不設定Activity的android:configChanges時,切屏會重新呼叫各個生命週期,切橫屏時會執行一次,切豎屏時會執行一次。 2.設定Activity的android:configChanges="orientation"時,切屏還是會重新呼叫各個生命週期,切橫執行一次再切回豎屏時並不會重新呼叫。
3.設定Activity的android:configChanges="orientation|keyboardHidden”時,和2反應一樣。 4.設定Activity的android:configChanges=“orientation|screeSize”時,切屏不會重新呼叫各個宣告週期。 由此看來系統不同會導致切屏出現不同的反應,檢視網上資料發現,好像手機品牌不同也會出現不同的反應。