Flutter生命周期

轉(zhuǎn)載:https://blog.csdn.net/yoonerloop/article/details/121003373

image.png

一、生命周期階段

flutter生命周期大體上可以分為三個階段:初始化、狀態(tài)變化、銷毀。
  • 初始化階段
    對應(yīng)執(zhí)行構(gòu)造方法和initState時候
  • 狀態(tài)變化階段
    開新的widget或者調(diào)用setState方法的時候
  • 銷毀階段
    deactivate 和 dispose

二、生命周期階段執(zhí)行的函數(shù)

  • initState
    調(diào)用次數(shù):1次

插入渲染樹時調(diào)用,只調(diào)用一次,widget創(chuàng)建執(zhí)行的第一個方法,這里可以做一些初始化工作,比如初始化State的變量。

  • didChangeDependencies
    調(diào)用次數(shù):多次
    初始化時,在initState()之后立刻調(diào)用
    當(dāng)依賴的InheritedWidget rebuild,會觸發(fā)此接口被調(diào)用
    實測在組件可見狀態(tài)變化的時候會調(diào)用
  • build
    調(diào)用次數(shù):多次
    初始化之后開始繪制界面
    setState觸發(fā)的時候會
  • didUpdateWidget
    調(diào)用次數(shù):多次
    組件狀態(tài)改變時候調(diào)用
  • deactivate
    當(dāng)State對象從樹中被移除時,會調(diào)用此回調(diào),會在dispose之前調(diào)用。
    頁面銷毀的時候會依次執(zhí)行:deactivate > dispose
  • dispose
    調(diào)用次數(shù):1次
    當(dāng)State對象從樹中被永久移除時調(diào)用;通常在此回調(diào)中釋放資源。
  • reassemble
    在熱重載(hot reload)時會被調(diào)用,此回調(diào)在Release模式下永遠(yuǎn)不會被調(diào)用

三、App生命周期

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

  • resumed
    可見并能響應(yīng)用戶的輸入,同安卓的onResume
  • inactive
    處在并不活動狀態(tài),無法處理用戶響應(yīng),同安卓的onPause
  • paused
    不可見并不能響應(yīng)用戶的輸入,但是在后臺繼續(xù)活動中,同安卓的onStop

下面是生命周期:

  • 初次打開widget時,不執(zhí)行AppLifecycleState的回調(diào);
  • 按home鍵或Power鍵, AppLifecycleState inactive---->AppLifecycleState pause
  • 從后臺到前臺:AppLifecycleState inactive--->ApplifecycleState resumed
  • back鍵退出應(yīng)用: AppLifecycleState inactive--->AppLifecycleState paused
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.Flutter中生命周期: flutter也有自己的生命周期,不像Android中Application、Ac...
    Gflyer閱讀 1,172評論 0 0
  • Flutter跟安卓的Activity、iOS的ViewController一樣擁有自己的生命周期, Flutte...
    稀釋1閱讀 1,531評論 0 1
  • Flutter 中的生命周期 flutter 也有自己的生命周期,但跟 Android 比起來就顯得弱化了,官方定...
    wethereornot閱讀 8,439評論 3 3
  • 方法名功能調(diào)用時機調(diào)用次數(shù)構(gòu)造方法接收父Widget傳遞的初始化UI配置數(shù)據(jù)創(chuàng)建State時1initState與...
    knyou閱讀 597評論 0 0
  • 前提 Flutter 的生命周期分為兩個部分: 1.Widget 的生命周期2.App 的生命周期 Widget的...
    G_whk閱讀 2,342評論 1 3

友情鏈接更多精彩內(nèi)容