W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
AbilityStage是一個Module級別的組件容器,應用的HAP在首次加載時會創(chuàng)建一個AbilityStage實例,可以對該Module進行初始化等操作。
AbilityStage與Module一一對應,即一個Module擁有一個AbilityStage。
DevEco Studio默認工程中未自動生成AbilityStage,如需要使用AbilityStage的能力,可以手動新建一個AbilityStage文件,具體步驟如下。
在工程Module對應的ets目錄下,右鍵選擇“New > Directory”,新建一個目錄并命名為myabilitystage。
在myabilitystage目錄,右鍵選擇“New > TypeScript File”,新建一個TypeScript文件并命名為MyAbilityStage.ts。
打開MyAbilityStage.ts文件,導入AbilityStage的依賴包,自定義類繼承AbilityStage并加上需要的生命周期回調,示例中增加了一個onCreate()生命周期回調。
- import AbilityStage from '@ohos.app.ability.AbilityStage';
- export default class MyAbilityStage extends AbilityStage {
- onCreate() {
- // 應用的HAP在首次加載的時,為該Module初始化操作
- }
- onAcceptWant(want) {
- // 僅specified模式下觸發(fā)
- return "MyAbilityStage";
- }
- }
在module.json5配置文件中,通過配置srcEntry參數來指定模塊對應的代碼路徑,以作為HAP加載的入口。
- {
- "module": {
- "name": "entry",
- "type": "entry",
- "srcEntry": "./ets/myabilitystage/MyAbilityStage.ts",
- ...
- }
- }
AbilityStage擁有onCreate()生命周期回調和onAcceptWant()、onConfigurationUpdated()、onMemoryLevel()事件回調。
onCreate()生命周期回調:在開始加載對應Module的第一個UIAbility實例之前會先創(chuàng)建AbilityStage,并在AbilityStage創(chuàng)建完成之后執(zhí)行其onCreate()生命周期回調。AbilityStage模塊提供在Module加載的時候,通知開發(fā)者,可以在此進行該Module的初始化(如資源預加載,線程創(chuàng)建等)能力。
onAcceptWant()事件回調:UIAbility指定實例模式(specified)啟動時候觸發(fā)的事件回調,具體使用請參見UIAbility啟動模式綜述。
onConfigurationUpdated()事件回調:當系統(tǒng)全局配置發(fā)生變更時觸發(fā)的事件,系統(tǒng)語言、深淺色等,配置項目前均定義在Configuration類中。
onMemoryLevel()事件回調:當系統(tǒng)調整內存時觸發(fā)的事件。
應用被切換到后臺時,系統(tǒng)會將在后臺的應用保留在緩存中。即使應用處于緩存中,也會影響系統(tǒng)整體性能。當系統(tǒng)資源不足時,系統(tǒng)會通過多種方式從應用中回收內存,必要時會完全停止應用,從而釋放內存用于執(zhí)行關鍵任務。為了進一步保持系統(tǒng)內存的平衡,避免系統(tǒng)停止用戶的應用進程,可以在AbilityStage中的onMemoryLevel()生命周期回調中訂閱系統(tǒng)內存的變化情況,釋放不必要的資源。
- import AbilityStage from '@ohos.app.ability.AbilityStage';
- export default class MyAbilityStage extends AbilityStage {
- onMemoryLevel(level) {
- // 根據系統(tǒng)可用內存的變化情況,釋放不必要的內存
- }
- }
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯系方式:
更多建議: