android:configChanges屬性總結


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

 

 

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“ 全局字體大小縮放發生改變

對android:configChanges屬性,一般認為有以下幾點:
1、不設置Activity的android:configChanges時,切屏會重新調用各個生命周期,切橫屏時會執行一次,切豎屏時會執行兩次

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

3、設置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“

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM