Flutter生命周期

一、Widget生命周期階段

flutter生命周期大體上可以分為三個階段:初始化、狀態變化、銷毀。

1.初始化階段
對應執行構造方法和initState時候

2.狀態變化階段
開新的widget或者調用setState方法的時候

3.銷毀階段
deactivate 和 dispose

生命周期階段執行的函數
1.initState
調用次數:1次
插入渲染樹時調用,只調用一次,widget創建執行的第一個方法,這里可以做一些初始化工作,比如初始化State的變量。

2.didChangeDependencies
調用次數:多次
初始化時,在initState()之后立刻調用
當依賴的InheritedWidget rebuild,會觸發此接口被調用
實測在組件可見狀態變化的時候會調用

3.build
調用次數:多次 
初始化之后開始繪制界面
setState觸發的時候會

4.didUpdateWidget
調用次數:多次
組件狀態改變時候調用

5.deactivate
當State對象從樹中被移除時,會調用此回調,會在dispose之前調用。
頁面銷毀的時候會依次執行:deactivate > dispose

6.dispose
調用次數:1次
當State對象從樹中被永久移除時調用;通常在此回調中釋放資源。

7.reassemble
在熱重載(hot reload)時會被調用,此回調在Release模式下永遠不會被調用

二、App生命周期

通過WidgetsBindingObserver的didChangeAppLifecycleState 來獲取。通過該接口可以獲取是生命周期在AppLifecycleState類中。

1.resumed
可見并能響應用戶的輸入,同安卓的onResume

2.inactive
處在并不活動狀態,無法處理用戶響應,同安卓的onPause

3.paused
不可見并不能響應用戶的輸入,但是在后臺繼續活動中,同安卓的onStop

下面是生命周期:
初次打開widget時,不執行AppLifecycleState的回調;
按home鍵或Power鍵, AppLifecycleState inactive---->AppLifecycleState pause
從后臺到前臺:AppLifecycleState inactive--->ApplifecycleState resumed
back鍵退出應用: AppLifecycleState inactive--->AppLifecycleState paused

引用:flutter生命周期

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。