方法介紹
-
方法:
public void onConfigurationChanged(Configuration newConfig)
-
場景:
- 當系統的 配置資訊 發生改變時,系統會呼叫此方法。
- 前提是,在清單檔案
AndroidManifest
中配置了configChanges
屬性 對應的 裝置配置,該方法才會被呼叫。 - 如果發生 裝置配置資訊改變 與
configChanges
屬性設定 不一致,則Activity會被銷燬並使用新的配置重建。 - 以上三句話舉個列子,比如 現在橫豎屏切換,
configChanges
屬性 設定android:configChanges="keyboard"
,那Activity依然會銷燬重建,因為它設定的屬性 和 發生的裝置資訊 不一致,應當設定為android:configChanges="orientation|screenSize"
。 - 系統配置資訊:類似 螢幕方向,更換系統字型,顯示硬鍵盤...
案例解析一橫豎屏切換
1.Activity清單檔案中 沒有設定 configChanges
屬性。
結論:只要螢幕發生改變activity就銷燬重建,不會走onConfigurationChanged 方法;
2.Activity清單檔案中設定 android:configChanges="orientation|screenSize"
。
-
結論:activity不會被銷燬重建,橫豎屏切換隻會走onConfigurationChanged方法
-
注意:
-
targetSdkVersion的值小於13時,只需要配置
orientation
即可; -
targetSdkVersion的值大於13時,必須要配置
orientation|screenSize
,否則只配置orientation,activity依然會銷燬重建。
-