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文件,具體步驟如下。
在工程Module對(duì)應(yīng)的ets目錄下,右鍵選擇“New > Directory”,新建一個(gè)目錄并命名為myabilitystage。
在myabilitystage目錄,右鍵選擇“New > ArkTS File”,新建一個(gè)文件并命名為MyAbilityStage.ts。
打開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'; } } `HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿`
在[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)存
}
}
審核編輯 黃宇
-
框架
+關(guān)注
關(guān)注
0文章
403瀏覽量
17520 -
組件
+關(guān)注
關(guān)注
1文章
517瀏覽量
17887 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2391瀏覽量
42970
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論