日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Harmony鸿蒙开发 四、Ability的生命周期

發布時間:2024/1/8 编程问答 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Harmony鸿蒙开发 四、Ability的生命周期 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、Ability的分類

HarmonyOS支持應用以Ability(一個或多個)為單位進行部署。Ability可以分為FA(Feature Ability)和PA(Particle Ability)兩種類型:

  • FA支持Page Ability:
    Page模板是FA唯一支持的模板,用于提供與用戶交互的能力。類似于android的Activity。一個Page實例可以包含一組相關頁面,每個頁面用一個AbilitySlice實例表示。

  • PA支持Service Ability和Data Ability:

  • Service模板:用于提供后臺運行任務的能力。
  • Data模板:用于對外部提供統一的數據訪問抽象。

2、Ability的生命周期

三種Ability的生命周期相似。我們這里以Page Ability為例:

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

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

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

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

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

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

  • 用戶通過系統管理能力關閉指定Page,例如使用任務管理器關閉Page。
  • 用戶行為觸發Page的terminateAbility()方法調用,例如使用應用的退出功能。
  • 配置變更導致系統暫時銷毀Page并重建。
  • 系統出于資源管理目的,自動觸發對處于BACKGROUND狀態Page的銷毀。

注意:

  • 以上關于生命周期的描述和圖表來自華為鴻蒙開發文檔:https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ability-page-lifecycle-0000000000029840
  • onStart()在整個生命周期過程中僅觸發一次,而onActive()在每一次從后臺回到前臺的時候都會被調用,所以我們開發時,把只需要加載一次的資源放在onStart()中進行,而onActive()里可加載一些實時變更的數據及資源。
  • 開發者通常需要成對實現onActive()和onInactive(),并在onActive()中獲取在onInactive()中被釋放的資源。
  • 3、AbilitySlice生命周期

  • AbilitySlice作為Page Ability的組成單元,其生命周期是依托于其所屬Page生命周期的。
  • 當Page Ability生命周期發生變化時,它的AbilitySlice也會發生相同的生命周期變化。
  • AbilitySlice還具有獨立于Page Ability的生命周期變化。
  • 4、Service Ability和Data Ability的生命周期

    參考:https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ability-service-lifecycle-0000000000044472

    總結

    以上是生活随笔為你收集整理的Harmony鸿蒙开发 四、Ability的生命周期的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。