Activity需要自己處理的配置項改變。當配置在運行時發生變化的時候,默認是Activity關閉并且重啟,但是,聲明了這個屬性,Activity就不會重啟。
<activity
android:name=".MainActivity"
android:configChanges="fontScale|orientation|keyboardHidden|locale|navigation|screenSize|uiMode"
android:screenOrientation="portrait" >
值 | 描述 |
---|---|
"mcc" | IMSI移動臺的國家代碼(MCC)發生變化——一個SIM被探測到并且更新MCC。 |
"mnc" | IMSI移動臺的網絡代碼(MNC)發生變化——一個SIM被探測到并且更新MNC。 |
"locale" | 區域發生變化——用戶選擇了一個文本需要顯示的新語言。 |
"touchscreen" | 觸摸屏發生變化。(這個通常不會發生。) |
"keyboard" | 鍵盤類型發生變化——例如:用戶插入了外接鍵盤。 |
"keyboardHidden" | 鍵盤的可訪問性發生變化——例如:用戶發現了硬件鍵盤。 |
"navigation" | 導航類型(軌跡球或dpad)發生變化。(通常不會發生。) |
"screenLayout" | 屏幕布局發生變化——這個會導致顯示不同的Activity。 |
"fontScale" | 字體縮放因子發生變化——用戶選擇了新的字體大小。 |
"uiMode" | 當UI模式發生改變的時候——當用戶放置設備到桌子或/汽車或夜間模式改變的時候可以引起UI模式變化。閱讀UiModeManager。在API級別8時引入。 |
"orientation" | 屏幕方向發生變化——用戶旋轉了屏幕。注意:如果應用程序的目標API級別是13或更高(通過屬性minSdkVersion和屬性targetSdkVersion聲明),你也需要聲明配置項screenSize,因為這將在設備選擇肖像和屏幕方向時發生改變。 |
"screenSize" | 當前可用屏幕大小發生變化。這代表一個當前可用大小的變化,和當前的比率相關,因此當用戶選擇不同的畫面和圖像,會發生變化。然而,如果你的程序目標API級別是12或更低,你的Activity總是會自己處理這個配置變化(這個變化不會引起Activity的重啟,甚至在Android 3.2或更新的設備上)。在API級別13里加入的。 |
"smallestScreenSize" | 物理屏幕大小的變化。不管方向的變化,僅僅在實際物理屏幕打包變化的時候,如:外接顯示器。這個配置項的變化引起在smallestWidth configuration里的變化。然而,如果你的程序目標API級別是12或更低,你的Activity將自己處理這個變化(這個變化不會引起Activity的重啟,甚至在Android 3.2或更新的設備上)在API級別13里加入的。 |