0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙Ability Kit(程序框架服務(wù))【AbilityStage組件容器】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-06-05 14:15 ? 次閱讀

AbilityStage組件容器

AbilityStage是一個(gè)[Module]級(jí)別的組件容器,應(yīng)用的HAP在首次加載時(shí)會(huì)創(chuàng)建一個(gè)AbilityStage實(shí)例,可以對(duì)該Module進(jìn)行初始化等操作。

AbilityStage與Module一一對(duì)應(yīng),即一個(gè)Module擁有一個(gè)AbilityStage。

DevEco Studio默認(rèn)工程中未自動(dòng)生成AbilityStage,如需要使用AbilityStage的能力,可以手動(dòng)新建一個(gè)AbilityStage文件,具體步驟如下。

  1. 在工程Module對(duì)應(yīng)的ets目錄下,右鍵選擇“New > Directory”,新建一個(gè)目錄并命名為myabilitystage。

  2. 在myabilitystage目錄,右鍵選擇“New > ArkTS File”,新建一個(gè)文件并命名為MyAbilityStage.ts。

  3. 打開MyAbilityStage.ts文件,導(dǎo)入AbilityStage的依賴包,自定義類繼承AbilityStage并加上需要的生命周期回調(diào),示例中增加了一個(gè)onCreate()生命周期回調(diào)。

    import AbilityStage from '@ohos.app.ability.AbilityStage';
    import type Want from '@ohos.app.ability.Want';
    
    export default class MyAbilityStage extends AbilityStage {
      onCreate(): void {
        // 應(yīng)用的HAP在首次加載的時(shí),為該Module初始化操作
      }
      onAcceptWant(want: Want): string {
        // 僅specified模式下觸發(fā)
        return 'MyAbilityStage';
      }
    }
    
    `HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿`
    

    鴻蒙文檔.png

  4. 在[module.json5配置文件]中,通過配置 srcEntry 參數(shù)來指定模塊對(duì)應(yīng)的代碼路徑,以作為HAP加載的入口。

{
  "module": {
    "name": "entry",
    "type": "entry",
    "srcEntry": "./ets/myabilitystage/MyAbilityStage.ts",
    ...
  }
}

[AbilityStage]擁有[onCreate()]生命周期回調(diào)和[onAcceptWant()]、[onConfigurationUpdated()]、[onMemoryLevel()]事件回調(diào)。

  • [onCreate()]生命周期回調(diào):在開始加載對(duì)應(yīng)Module的第一個(gè)UIAbility實(shí)例之前會(huì)先創(chuàng)建AbilityStage,并在AbilityStage創(chuàng)建完成之后執(zhí)行其onCreate()生命周期回調(diào)。AbilityStage模塊提供在Module加載的時(shí)候,通知開發(fā)者,可以在此進(jìn)行該Module的初始化(如資源預(yù)加載,線程創(chuàng)建等)能力。
  • [onAcceptWant()]事件回調(diào):UIAbility[指定實(shí)例模式(specified)]啟動(dòng)時(shí)候觸發(fā)的事件回調(diào),具體使用請(qǐng)參見[UIAbility啟動(dòng)模式綜述]。
  • [onConfigurationUpdated()]事件回調(diào):當(dāng)系統(tǒng)全局配置發(fā)生變更時(shí)觸發(fā)的事件,系統(tǒng)語言、深淺色等,配置項(xiàng)目前均定義在[Configuration]類中。
  • [onMemoryLevel()]事件回調(diào):當(dāng)系統(tǒng)調(diào)整內(nèi)存時(shí)觸發(fā)的事件。

應(yīng)用被切換到后臺(tái)時(shí),系統(tǒng)會(huì)將在后臺(tái)的應(yīng)用保留在緩存中。即使應(yīng)用處于緩存中,也會(huì)影響系統(tǒng)整體性能。當(dāng)系統(tǒng)資源不足時(shí),系統(tǒng)會(huì)通過多種方式從應(yīng)用中回收內(nèi)存,必要時(shí)會(huì)完全停止應(yīng)用,從而釋放內(nèi)存用于執(zhí)行關(guān)鍵任務(wù)。為了進(jìn)一步保持系統(tǒng)內(nèi)存的平衡,避免系統(tǒng)停止用戶的應(yīng)用進(jìn)程,可以在AbilityStage中的onMemoryLevel()生命周期回調(diào)中訂閱系統(tǒng)內(nèi)存的變化情況,釋放不必要的資源。

import AbilityStage from '@ohos.app.ability.AbilityStage';
import type AbilityConstant from '@ohos.app.ability.AbilityConstant';

export default class MyAbilityStage extends AbilityStage {
  onMemoryLevel(level: AbilityConstant.MemoryLevel): void {
    // 根據(jù)系統(tǒng)可用內(nèi)存的變化情況,釋放不必要的內(nèi)存
  }
}

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 框架
    +關(guān)注

    關(guān)注

    0

    文章

    403

    瀏覽量

    17520
  • 組件
    +關(guān)注

    關(guān)注

    1

    文章

    517

    瀏覽量

    17887
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2391

    瀏覽量

    42970
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    鴻蒙Ability Kit程序框架服務(wù))【ServiceExtensionAbility】

    [ServiceExtensionAbility]是SERVICE類型的ExtensionAbility組件,提供后臺(tái)服務(wù)能力,其內(nèi)部持有了一個(gè)[ServiceExtensionContext],通過[ServiceExtensionContext]提供了豐富的接口供外部
    的頭像 發(fā)表于 06-04 14:50 ?1263次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>)【ServiceExtensionAbility】

    鴻蒙Ability Kit程序框架服務(wù))【UIExtensionAbility】

    [UIExtensionAbility]是UI類型的ExtensionAbility組件,需要與[UIExtensionComponent]一起配合使用,開發(fā)者可以在UIAbility的頁面中通過
    的頭像 發(fā)表于 06-05 09:19 ?1461次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>)【UIExtensionAbility】

    HarmonyOS/OpenHarmony(Stage模型)卡片開發(fā)AbilityStage組件容器

    AbilityStage是一個(gè)Module級(jí)別的組件容器,應(yīng)用的HAP在首次加載時(shí)會(huì)創(chuàng)建一個(gè)AbilityStage實(shí)例,可以對(duì)該Module進(jìn)行初始化等操作。
    發(fā)表于 08-23 16:45

    鴻蒙應(yīng)用模型:【Ability Kit】簡介

    Ability Kit程序框架服務(wù))提供了應(yīng)用程序開發(fā)和運(yùn)行的應(yīng)用模型,是系統(tǒng)為開發(fā)者提供的應(yīng)
    的頭像 發(fā)表于 05-29 14:41 ?693次閱讀
    <b class='flag-5'>鴻蒙</b>應(yīng)用模型:【<b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>】簡介

    鴻蒙Ability Kit程序框架服務(wù))【UIAbility組件概述】

    UIAbility組件是一種包含UI的應(yīng)用組件,主要用于和用戶交互。
    的頭像 發(fā)表于 05-30 20:17 ?471次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>)【UIAbility<b class='flag-5'>組件</b>概述】

    鴻蒙Ability Kit程序框架服務(wù))【UIAbility組件啟動(dòng)模式】

    UIAbility的啟動(dòng)模式是指UIAbility實(shí)例在啟動(dòng)時(shí)的不同呈現(xiàn)狀態(tài)。針對(duì)不同的業(yè)務(wù)場景,系統(tǒng)提供了三種啟動(dòng)模式:
    的頭像 發(fā)表于 06-06 11:05 ?893次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>)【UIAbility<b class='flag-5'>組件</b>啟動(dòng)模式】

    鴻蒙Ability Kit程序框架服務(wù))【UIAbility組件基本用法】

    UIAbility組件的基本用法包括:指定UIAbility的啟動(dòng)頁面以及獲取UIAbility的上下文[UIAbilityContext]。
    的頭像 發(fā)表于 06-06 11:02 ?546次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>)【UIAbility<b class='flag-5'>組件</b>基本用法】

    鴻蒙Ability Kit程序框架服務(wù))【Ability內(nèi)頁面間的跳轉(zhuǎn)】

    基于Stage模型下的Ability開發(fā),實(shí)現(xiàn)Ability內(nèi)頁面間的跳轉(zhuǎn)和數(shù)據(jù)傳遞。
    的頭像 發(fā)表于 06-03 20:43 ?325次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>)【<b class='flag-5'>Ability</b>內(nèi)頁面間的跳轉(zhuǎn)】

    鴻蒙Ability Kit程序框架服務(wù))【ExtensionAbility組件

    ExtensionAbility組件是基于特定場景(例如服務(wù)卡片、輸入法等)提供的應(yīng)用組件,以便滿足更多的使用場景。
    的頭像 發(fā)表于 06-04 15:54 ?651次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>)【ExtensionAbility<b class='flag-5'>組件</b>】

    鴻蒙Ability Kit程序框架服務(wù))【Ability與ServiceExtensionAbility通信】

    本示例展示通過[IDL的方式]和?[@ohos.rpc]?等接口實(shí)現(xiàn)了Ability與ServiceExtensionAbility之間的通信。
    的頭像 發(fā)表于 06-05 09:28 ?526次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>)【<b class='flag-5'>Ability</b>與ServiceExtensionAbility通信】

    鴻蒙Ability Kit程序框架服務(wù))【W(wǎng)ant概述】

    [Want]是一種對(duì)象,用于在應(yīng)用組件之間傳遞信息。
    的頭像 發(fā)表于 06-06 09:16 ?574次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>)【W(wǎng)ant概述】

    鴻蒙Ability Kit程序框架服務(wù))【組件啟動(dòng)規(guī)則(Stage模型)】

    組件啟動(dòng)規(guī)則(Stage模型) 啟動(dòng)組件是指一切啟動(dòng)或連接應(yīng)用組件的行為: 啟動(dòng)UIAbility、ServiceExtensionAbility、DataShareExtensionAbility
    的頭像 發(fā)表于 06-10 18:47 ?971次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>)【<b class='flag-5'>組件</b>啟動(dòng)規(guī)則(Stage模型)】

    鴻蒙Ability Kit程序框架服務(wù))【應(yīng)用啟動(dòng)框架AppStartup】

    `AppStartup`提供了一種更加簡單高效的初始化組件的方式,支持異步初始化組件加速應(yīng)用的啟動(dòng)時(shí)間。使用啟動(dòng)框架應(yīng)用開發(fā)者只需要分別為待初始化的組件實(shí)現(xiàn)`AppStartup`提供
    的頭像 發(fā)表于 06-10 18:38 ?761次閱讀

    鴻蒙開發(fā)Ability Kit程序框架服務(wù):任務(wù)管理

    AbilityRecord:系統(tǒng)服務(wù)側(cè)管理一個(gè)UIAbility實(shí)例的最小單元,對(duì)應(yīng)一個(gè)應(yīng)用側(cè)的UIAbility組件實(shí)例。系統(tǒng)服務(wù)側(cè)管理UIAbility實(shí)例數(shù)量上限為512個(gè)。
    的頭像 發(fā)表于 06-24 14:46 ?504次閱讀
    <b class='flag-5'>鴻蒙</b>開發(fā)<b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>:任務(wù)管理

    鴻蒙開發(fā)Ability Kit程序框架服務(wù):FA模型與Stage模型應(yīng)用組件互通綜述

    FA模型與Stage模型是兩套不同的應(yīng)用模型,他們擁有各自的組件。FA模型提供三種應(yīng)用組件,分別是PageAbility、ServiceAbility和DataAbility。Stage模型提供了兩種應(yīng)用組件,分別是UIAbil
    的頭像 發(fā)表于 06-24 16:43 ?564次閱讀
    <b class='flag-5'>鴻蒙</b>開發(fā)<b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>:FA模型與Stage模型應(yīng)用<b class='flag-5'>組件</b>互通綜述