android:configChanges屬性總結

http://blog.csdn.net/zhaokaiqiang1992/article/details/19921703android

 

 

android中的組件Activity在manifest.xml文件中能夠指定參數android:ConfigChanges,用於捕獲手機狀態的改變。 在Activity中添加了android:configChanges屬性,在當所指定屬性(Configuration Changes)發生改變時,通知程序調用onConfigurationChanged()函數。函數

設置方法:將下列字段用「|」符號分隔開,例如:「locale|navigation|orientation」 字體

 

「mcc「 移動國家號碼,由三位數字組成,每一個國家都有本身獨立的MCC,能夠識別手機用戶所屬國家。
「mnc「 移動網號,在一個國家或者地區中,用於區分手機用戶的服務商。
「locale「 所在地區發生變化。
「touchscreen「 觸摸屏已經改變。(這不該該常發生。)
「keyboard「 鍵盤模式發生變化,例如:用戶接入外部鍵盤輸入。
「keyboardHidden「 用戶打開手機硬件鍵盤
「navigation「 導航型發生了變化。(這不該該常發生。)
「orientation「 設備旋轉,橫向顯示和豎向顯示模式切換。
「fontScale「 全局字體大小縮放發生改變

.net

對android:configChanges屬性,通常認爲有如下幾點:
一、不設置Activity的android:configChanges時,切屏會從新調用各個生命週期,切橫屏時會執行一次,切豎屏時會執行兩次

二、設置Activity的android:configChanges="orientation"時,切屏仍是會從新調用各個生命週期,切橫、豎屏時只會執行一次

三、設置Activity的android:configChanges="orientation|keyboardHidden"時,切屏不會從新調用各個生命週期,只會執行onConfigurationChanged方法

可是,自從Android 3.2(API 13),在設置Activity的android:configChanges="orientation|keyboardHidden"後,仍是同樣會從新調用各個生命週期的。由於screen size也開始跟着設備的橫豎切換而改變。因此,在AndroidManifest.xml裏設置的MiniSdkVersion和 TargetSdkVersion屬性大於等於13的狀況下,若是你想阻止程序在運行時從新加載Activity,除了設置"orientation",你還必須設置"ScreenSize"。
解決方法:
AndroidManifest.xml中設置android:configChanges="orientation|screenSize「xml

相關文章
相關標籤/搜索