android中onCreate方法新參數(persistableBundle persistentState)是讓Activity擁有持久化能力,如何理解這個持久化能力呢?
一般我們會搭配兩個方法來使用:
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState)
public void onRestoreInstanceState(Bundle savedInstanceState, PersistableBundle persistentState)
前一個方法會在下述情形中被調用:
點擊home鍵回到主頁或長按後選擇運行其他程序
按下電源鍵關閉屏幕
啟動新的Activity
橫豎屏切換時,肯定會執行,因為橫豎屏切換的時候會先銷毀Act,然後再重新創建 重要原則:當系統"未經你許可"時銷毀了你的activity,則onSaveInstanceState會被系統調用, 這是系統的責任,因為它必須要提供一個機會讓你保存你的數據(你可以保存也可以不保存)。
而後一個方法,和onCreate同樣可以從取出前者保存的數據: 一般是在onStart()和onResume()之間執行! 之所以有兩個可以獲取到保存數據的方法,是為了避免Act跳轉而沒有關閉, 然後不走onCreate()方法,而你又想取出保存數據~
說回這個Activity擁有了持久化的能力,增加的這個PersistableBundle參數令這些方法 擁有了系統關機後重啟的數據恢復能力!!而且不影響我們其他的序列化操作, 具體怎麼實現的,暫時還不了解,可能是另外弄了個文件保存吧~!另外,API版本需要>=21,就是要5.0以上的版本才有效~