Activity關於onConfigurationChanged方法

我可能是一隻假程式猿發表於2019-05-07

方法介紹

  • 方法:public void onConfigurationChanged(Configuration newConfig)

  • 場景:

    • 當系統的 配置資訊 發生改變時,系統會呼叫此方法。
    • 前提是,在清單檔案AndroidManifest中配置了configChanges屬性 對應的 裝置配置,該方法才會被呼叫。
    • 如果發生 裝置配置資訊改變 與configChanges 屬性設定 不一致,則Activity會被銷燬並使用新的配置重建。
    • 以上三句話舉個列子,比如 現在橫豎屏切換,configChanges屬性 設定 android:configChanges="keyboard",那Activity依然會銷燬重建,因為它設定的屬性 和 發生的裝置資訊 不一致,應當設定為 android:configChanges="orientation|screenSize"
    • 系統配置資訊:類似 螢幕方向,更換系統字型,顯示硬鍵盤...

案例解析一橫豎屏切換

1.Activity清單檔案中 沒有設定 configChanges 屬性。

結論:只要螢幕發生改變activity就銷燬重建,不會走onConfigurationChanged 方法;

Activity關於onConfigurationChanged方法

2.Activity清單檔案中設定 android:configChanges="orientation|screenSize"

  • 結論:activity不會被銷燬重建,橫豎屏切換隻會走onConfigurationChanged方法

  • 注意:

    • targetSdkVersion的值小於13時,只需要配置orientation即可;

    • targetSdkVersion的值大於13時,必須要配置orientation|screenSize,否則只配置orientation,activity依然會銷燬重建。

Activity關於onConfigurationChanged方法

感謝

blog.csdn.net/qq_27570955…

相關文章