Android:configChanges

android中的組件Activity在manifest.xml文件中可以指定參數(shù)android:ConfigChanges,用于捕獲手機(jī)狀態(tài)的改變。在Activity中添加了android:configChanges屬性,在當(dāng)所指定屬性(Configuration Changes)發(fā)生改變時(shí),通知程序調(diào)用onConfigurationChanged()函數(shù)。

設(shè)置方法:將下列字段用“|”符號分隔開,例如:“l(fā)ocale|navigation|orientation”

“mcc“移動國家號碼,由三位數(shù)字組成,每個國家都有自己獨(dú)立的MCC,可以識別手機(jī)用戶所屬國家。

“mnc“移動網(wǎng)號,在一個國家或者地區(qū)中,用于區(qū)分手機(jī)用戶的服務(wù)商。

“l(fā)ocale“所在地區(qū)發(fā)生變化。

“touchscreen“觸摸屏已經(jīng)改變。(這不應(yīng)該常發(fā)生。)

“keyboard“鍵盤模式發(fā)生變化,例如:用戶接入外部鍵盤輸入。

“keyboardHidden“用戶打開手機(jī)硬件鍵盤

“navigation“導(dǎo)航型發(fā)生了變化。(這不應(yīng)該常發(fā)生。)

“orientation“設(shè)備旋轉(zhuǎn),橫向顯示和豎向顯示模式切換。

“fontScale“全局字體大小縮放發(fā)生改變

對android:configChanges屬性,一般認(rèn)為有以下幾點(diǎn):

1、不設(shè)置Activity的android:configChanges時(shí),切屏?xí)匦抡{(diào)用各個生命周期,切橫屏?xí)r會執(zhí)行一次,切豎屏?xí)r會執(zhí)行兩次

2、設(shè)置Activity的android:configChanges="orientation"時(shí),切屏還是會重新調(diào)用各個生命周期,切橫、豎屏?xí)r只會執(zhí)行一次

3、設(shè)置Activity的android:configChanges="orientation|keyboardHidden"時(shí),切屏不會重新調(diào)用各個生命周期,只會執(zhí)行onConfigurationChanged方法

但是,自從Android 3.2(API 13),在設(shè)置Activity的android:configChanges="orientation|keyboardHidden"后,還是一樣會重新調(diào)用各個生命周期的。因?yàn)閟creen size也開始跟著設(shè)備的橫豎切換而改變。所以,在AndroidManifest.xml里設(shè)置的MiniSdkVersion和 TargetSdkVersion屬性大于等于13的情況下,如果你想阻止程序在運(yùn)行時(shí)重新加載Activity,除了設(shè)置"orientation",你還必須設(shè)置"ScreenSize"。

解決方法:

AndroidManifest.xml中設(shè)置android:configChanges="orientation|screenSize“

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容