鴻蒙OSPage生命週期對比Web前端解析

主文章跳轉按鈕
onStart()

  • 這個相當於vue 的create

當系統首次創建Page實例時,觸發該回調。對於一個Page實例,該回調在其生命週期過程中僅觸發一次,Page在該邏輯後將進入INACTIVE狀態。開發者必須重寫該方法,並在此配置默認展示的AbilitySlice。

onActive()

  • 相當於vue mounted

Page會在進入INACTIVE狀態後來到前臺,然後系統調用此回調。Page在此之後進入ACTIVE狀態,該狀態是應用與用戶交互的狀態。Page將保持在此狀態,除非某類事件發生導致Page失去焦點,比如用戶點擊返回鍵或導航到其他Page。當此類事件發生時,會觸發Page回到INACTIVE狀態,系統將調用onInactive()回調。此後,Page可能重新回到ACTIVE狀態,系統將再次調用onActive()回調。因此,開發者通常需要成對實現onActive()和onInactive(),並在onActive()中獲取在onInactive()中被釋放的資源。

onInactive()

  • 頁面隱藏類似vue beforeDestroy 相當於uniapp的 onhide

當Page失去焦點時,系統將調用此回調,此後Page進入INACTIVE狀態。開發者可以在此回調中實現Page失去焦點時應表現的恰當行爲。

onBackground()

  • 相當於 頁面銷燬 vue的 destroyed

如果Page不再對用戶可見,系統將調用此回調通知開發者用戶進行相應的資源釋放,此後Page進入BACKGROUND狀態。開發者應該在此回調中釋放Page不可見時無用的資源,或在此回調中執行較爲耗時的狀態保存操作。

onForeground()

  • 這個我找不到類似安卓開發者應該理解這個的總之就是頁面雖然被銷燬了但是還是在內存中,銷燬會根據級別被系統自動回收

處於BACKGROUND狀態的Page仍然駐留在內存中,當重新回到前臺時(比如用戶重新導航到此Page),系統將先調用onForeground()回調通知開發者,而後Page的生命週期狀態回到INACTIVE狀態。開發者應當在此回調中重新申請在onBackground()中釋放的資源,最後Page的生命週期狀態進一步回到ACTIVE狀態,系統將通過onActive()回調通知開發者用戶。

onStop()
頁面銷燬 相當於vue destroyed 再次數據將會全部釋放包括內存的數據

系統將要銷燬Page時,將會觸發此回調函數,通知用戶進行系統資源的釋放。銷燬Page的可能原因包括以下幾個方面

  1. 用戶通過系統管理能力關閉指定Page,例如使用任務管理器關閉Page。
  2. 用戶行爲觸發Page的terminateAbility()方法調用,例如使用應用的退出功能。
  3. 配置變更導致系統暫時銷燬Page並重建。
  4. 系統出於資源管理目的,自動觸發對處於BACKGROUND狀態Page的銷燬
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章