国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

OpenHarmony—UIAbility組件生命周期

這篇具有很好參考價(jià)值的文章主要介紹了OpenHarmony—UIAbility組件生命周期。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

概述

當(dāng)用戶打開、切換和返回到對(duì)應(yīng)應(yīng)用時(shí),應(yīng)用中的UIAbility實(shí)例會(huì)在其生命周期的不同狀態(tài)之間轉(zhuǎn)換。UIAbility類提供了一系列回調(diào),通過這些回調(diào)可以知道當(dāng)前UIAbility實(shí)例的某個(gè)狀態(tài)發(fā)生改變,會(huì)經(jīng)過UIAbility實(shí)例的創(chuàng)建和銷毀,或者UIAbility實(shí)例發(fā)生了前后臺(tái)的狀態(tài)切換。

UIAbility的生命周期包括Create、Foreground、Background、Destroy四個(gè)狀態(tài),如下圖所示。

圖1?UIAbility生命周期狀態(tài)

OpenHarmony—UIAbility組件生命周期,鴻蒙,HarmonyOS,OpenHarmony,harmonyos,HarmonyOS,鴻蒙開發(fā),華為,驅(qū)動(dòng)開發(fā),OpenHarmony

生命周期狀態(tài)說明

Create狀態(tài)
Create狀態(tài)為在應(yīng)用加載過程中,UIAbility實(shí)例創(chuàng)建完成時(shí)觸發(fā),系統(tǒng)會(huì)調(diào)用onCreate()回調(diào)??梢栽谠摶卣{(diào)中進(jìn)行應(yīng)用初始化操作,例如變量定義資源加載等,用于后續(xù)的UI展示。

import UIAbility from '@ohos.app.ability.UIAbility';
import AbilityConstant from '@ohos.app.ability.AbilityConstant';
import Want from '@ohos.app.ability.Want';

export default class EntryAbility extends UIAbility {
  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {
    // 應(yīng)用初始化
  }
  // ...
}

說明:
Want是對(duì)象間信息傳遞的載體,可以用于應(yīng)用組件間的信息傳遞。

WindowStageCreate和WindowStageDestroy狀態(tài)
UIAbility實(shí)例創(chuàng)建完成之后,在進(jìn)入Foreground之前,系統(tǒng)會(huì)創(chuàng)建一個(gè)WindowStage。WindowStage創(chuàng)建完成后會(huì)進(jìn)入onWindowStageCreate()回調(diào),可以在該回調(diào)中設(shè)置UI加載、設(shè)置WindowStage的事件訂閱。

圖2?WindowStageCreate和WindowStageDestroy狀態(tài)

OpenHarmony—UIAbility組件生命周期,鴻蒙,HarmonyOS,OpenHarmony,harmonyos,HarmonyOS,鴻蒙開發(fā),華為,驅(qū)動(dòng)開發(fā),OpenHarmony
在onWindowStageCreate()回調(diào)中通過loadContent()方法設(shè)置應(yīng)用要加載的頁面,并根據(jù)需要調(diào)用on(‘windowStageEvent’)方法訂閱WindowStage的事件(獲焦/失焦、可見/不可見)。

import UIAbility from '@ohos.app.ability.UIAbility';
import window from '@ohos.window';

export default class EntryAbility extends UIAbility {
  // ...

  onWindowStageCreate(windowStage: window.WindowStage) {
    // 設(shè)置WindowStage的事件訂閱(獲焦/失焦、可見/不可見)
    try {
      windowStage.on('windowStageEvent', (data) => {
        let stageEventType: window.WindowStageEventType = data;
        switch (stageEventType) {
          case window.WindowStageEventType.SHOWN: // 切到前臺(tái)
            console.info('windowStage foreground.');
            break;
          case window.WindowStageEventType.ACTIVE: // 獲焦?fàn)顟B(tài)
            console.info('windowStage active.');
            break;
          case window.WindowStageEventType.INACTIVE: // 失焦?fàn)顟B(tài)
            console.info('windowStage inactive.');
            break;
          case window.WindowStageEventType.HIDDEN: // 切到后臺(tái)
            console.info('windowStage background.');
            break;
          default:
            break;
        }
      });
    } catch (exception) {
      console.error('Failed to enable the listener for window stage event changes. Cause:' +
      JSON.stringify(exception));
    }

    // 設(shè)置UI加載
    windowStage.loadContent('pages/Index', (err, data) => {
      // ...
    });
  }
}

對(duì)應(yīng)于onWindowStageCreate()回調(diào)。在UIAbility實(shí)例銷毀之前,則會(huì)先進(jìn)入onWindowStageDestroy()回調(diào),可以在該回調(diào)中釋放UI資源。例如在onWindowStageDestroy()中注銷獲焦/失焦等WindowStage事件。

import UIAbility from '@ohos.app.ability.UIAbility';
import window from '@ohos.window';
import { BusinessError } from '@ohos.base';

export default class EntryAbility extends UIAbility {
  windowStage: window.WindowStage | undefined = undefined;
  // ...

  onWindowStageCreate(windowStage: window.WindowStage) {
    this.windowStage = windowStage;
    // ...
  }

  onWindowStageDestroy() {
    // 釋放UI資源
    // 例如在onWindowStageDestroy()中注銷獲焦/失焦等WindowStage事件
    try {
      if (this.windowStage) {
        this.windowStage.off('windowStageEvent');
      }
    } catch (err) {
      let code = (err as BusinessError).code;
      let message = (err as BusinessError).message;
      console.error(`Failed to disable the listener for windowStageEvent. Code is ${code}, message is ${message}`);
    };
  }
}

Foreground和Background狀態(tài)

Foreground和Background狀態(tài)分別在UIAbility實(shí)例切換至前臺(tái)和切換至后臺(tái)時(shí)觸發(fā),對(duì)應(yīng)于onForeground()回調(diào)和onBackground()回調(diào)。

onForeground()回調(diào),在UIAbility的UI可見之前,如UIAbility切換至前臺(tái)時(shí)觸發(fā)??梢栽趏nForeground()回調(diào)中申請(qǐng)系統(tǒng)需要的資源,或者重新申請(qǐng)?jiān)趏nBackground()中釋放的資源。

onBackground()回調(diào),在UIAbility的UI完全不可見之后,如UIAbility切換至后臺(tái)時(shí)候觸發(fā)??梢栽趏nBackground()回調(diào)中釋放UI不可見時(shí)無用的資源,或者在此回調(diào)中執(zhí)行較為耗時(shí)的操作,例如狀態(tài)保存等。

例如應(yīng)用在使用過程中需要使用用戶定位時(shí),假設(shè)應(yīng)用已獲得用戶的定位權(quán)限授權(quán)。在UI顯示之前,可以在onForeground()回調(diào)中開啟定位功能,從而獲取到當(dāng)前的位置信息。

當(dāng)應(yīng)用切換到后臺(tái)狀態(tài),可以在onBackground()回調(diào)中停止定位功能,以節(jié)省系統(tǒng)的資源消耗。

import UIAbility from '@ohos.app.ability.UIAbility';

export default class EntryAbility extends UIAbility {
  // ...

  onForeground() {
    // 申請(qǐng)系統(tǒng)需要的資源,或者重新申請(qǐng)?jiān)趏nBackground()中釋放的資源
  }

  onBackground() {
    // 釋放UI不可見時(shí)無用的資源,或者在此回調(diào)中執(zhí)行較為耗時(shí)的操作
    // 例如狀態(tài)保存等
  }
}

Destroy狀態(tài)

Destroy狀態(tài)在UIAbility實(shí)例銷毀時(shí)觸發(fā)。可以在onDestroy()回調(diào)中進(jìn)行系統(tǒng)資源的釋放、數(shù)據(jù)的保存等操作。

例如調(diào)用terminateSelf()方法停止當(dāng)前UIAbility實(shí)例,從而完成UIAbility實(shí)例的銷毀;或者用戶使用最近任務(wù)列表關(guān)閉該UIAbility實(shí)例,完成UIAbility的銷毀。

import UIAbility from '@ohos.app.ability.UIAbility';

export default class EntryAbility extends UIAbility {
  // ...

  onDestroy() {
    // 系統(tǒng)資源的釋放、數(shù)據(jù)的保存等
  }
}

要想成為一名合格的鴻蒙高級(jí)開發(fā)工程師,以上知識(shí)點(diǎn)是必須要掌握的,除此之外,還需要掌握一些鴻蒙應(yīng)用開發(fā)相關(guān)的一些技術(shù)

為了節(jié)省大家一些查找的時(shí)間,這邊聯(lián)合幾位行業(yè)大佬,為大家準(zhǔn)備了一份《鴻蒙全棧技術(shù) 實(shí)戰(zhàn)項(xiàng)目驅(qū)動(dòng)式教學(xué)》的學(xué)習(xí)導(dǎo)圖,從入門到進(jìn)階再到南北向開發(fā)實(shí)戰(zhàn)的一整套完整體系,想要學(xué)習(xí)了解更多鴻蒙開發(fā)的相關(guān)知識(shí)可以借鑒:《鴻蒙4.0源碼開發(fā)架構(gòu)分析pdf》
OpenHarmony—UIAbility組件生命周期,鴻蒙,HarmonyOS,OpenHarmony,harmonyos,HarmonyOS,鴻蒙開發(fā),華為,驅(qū)動(dòng)開發(fā),OpenHarmony
除了上面整理的思維導(dǎo)圖以外,這里還特別整理的一份《鴻蒙 (Harmony OS)開發(fā)學(xué)習(xí)手冊(cè)》給大家進(jìn)行參考學(xué)習(xí):

一、入門必看

1.應(yīng)用開發(fā)導(dǎo)讀(ArkTS)

2.……OpenHarmony—UIAbility組件生命周期,鴻蒙,HarmonyOS,OpenHarmony,harmonyos,HarmonyOS,鴻蒙開發(fā),華為,驅(qū)動(dòng)開發(fā),OpenHarmony
二、HarmonyOS 概念

1.系統(tǒng)定義

2.技術(shù)架構(gòu)

3.技術(shù)特性

4.系統(tǒng)安全

5…
OpenHarmony—UIAbility組件生命周期,鴻蒙,HarmonyOS,OpenHarmony,harmonyos,HarmonyOS,鴻蒙開發(fā),華為,驅(qū)動(dòng)開發(fā),OpenHarmony
三、如何快速入門?《一小時(shí)快速認(rèn)識(shí)HarmonyOS》

1.基本概念

2.構(gòu)建第一個(gè)ArkTS應(yīng)用

3.構(gòu)建第一個(gè)JS應(yīng)用

4.……
OpenHarmony—UIAbility組件生命周期,鴻蒙,HarmonyOS,OpenHarmony,harmonyos,HarmonyOS,鴻蒙開發(fā),華為,驅(qū)動(dòng)開發(fā),OpenHarmony
四、開發(fā)基礎(chǔ)知識(shí)

1.應(yīng)用基礎(chǔ)知識(shí)

2.配置文件

3.應(yīng)用數(shù)據(jù)管理

4.應(yīng)用安全管理

5.應(yīng)用隱私保護(hù)

6.三方應(yīng)用調(diào)用管控機(jī)制

7.資源分類與訪問

8.學(xué)習(xí)ArkTS語言

9.……OpenHarmony—UIAbility組件生命周期,鴻蒙,HarmonyOS,OpenHarmony,harmonyos,HarmonyOS,鴻蒙開發(fā),華為,驅(qū)動(dòng)開發(fā),OpenHarmony
五、基于ArkTS 開發(fā)

1.Ability開發(fā)

2.UI開發(fā)

3.公共事件與通知

4.窗口管理

5.媒體

6.安全

7.網(wǎng)絡(luò)與鏈接

8.電話服務(wù)

9.數(shù)據(jù)管理

10.后臺(tái)任務(wù)(Background Task)管理

11.設(shè)備管理

12.設(shè)備使用信息統(tǒng)計(jì)

13.DFX

14.國際化開發(fā)

15.折疊屏系列

16.……

OpenHarmony—UIAbility組件生命周期,鴻蒙,HarmonyOS,OpenHarmony,harmonyos,HarmonyOS,鴻蒙開發(fā),華為,驅(qū)動(dòng)開發(fā),OpenHarmony
更多了解更多鴻蒙開發(fā)的相關(guān)知識(shí)可以參考:《鴻蒙HarmonyOS分布式項(xiàng)目實(shí)戰(zhàn)》文章來源地址http://www.zghlxwxcb.cn/news/detail-830229.html

到了這里,關(guān)于OpenHarmony—UIAbility組件生命周期的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【鴻蒙軟件開發(fā)】UIAbility組件概況、生命周期與啟動(dòng)模式

    【鴻蒙軟件開發(fā)】UIAbility組件概況、生命周期與啟動(dòng)模式

    UIAbility組件是一種包含UI界面的應(yīng)用組件,主要用于和用戶交互。 UIAbility組件是系統(tǒng)調(diào)度的基本單元,為應(yīng)用提供繪制界面的窗口;一個(gè)UIAbility組件中可以通過多個(gè)頁面來實(shí)現(xiàn)一個(gè)功能模塊。每一個(gè)UIAbility組件實(shí)例,都對(duì)應(yīng)于一個(gè)最近任務(wù)列表中的任務(wù)。 UIAbility組件是一種包

    2024年02月05日
    瀏覽(30)
  • HarmonyOS/OpenHarmony元服務(wù)開發(fā)-卡片生命周期管理

    創(chuàng)建ArkTS卡片,需實(shí)現(xiàn)FormExtensionAbility生命周期接口。 1.在EntryFormAbility.ts中,導(dǎo)入相關(guān)模塊。 2.在EntryFormAbility.ts中,實(shí)現(xiàn)FormExtensionAbility生命周期接口,其中在onAddForm的入?yún)ant中可以通過FormParam取出卡片的相關(guān)信息。 說明:FormExtensionAbility進(jìn)程不能常駐后臺(tái),即在卡片生命周

    2024年02月15日
    瀏覽(20)
  • HarmonyOS(十三)——詳解自定義組件的生命周期

    HarmonyOS(十三)——詳解自定義組件的生命周期

    自定義組件的生命周期回調(diào)函數(shù)用于通知用戶該自定義組件的生命周期,這些回調(diào)函數(shù)是私有的,在運(yùn)行時(shí)由開發(fā)框架在特定的時(shí)間進(jìn)行調(diào)用,不能從應(yīng)用程序中手動(dòng)調(diào)用這些回調(diào)函數(shù)。 下圖展示的是被@Entry裝飾的組件生命周期: 今天根據(jù)上面的流程圖,我們從自定義組件

    2024年01月25日
    瀏覽(29)
  • HarmonyOS4.0系列——07、自定義組件的生命周期、路由以及路由傳參

    HarmonyOS4.0系列——07、自定義組件的生命周期、路由以及路由傳參

    允許在生命周期函數(shù)中使用 Promise 和異步回調(diào)函數(shù),比如網(wǎng)絡(luò)資源獲取,定時(shí)器設(shè)置等; 即被@Entry 裝飾的組件生命周期,提供以下生命周期接口: onPageShow 頁面加載時(shí)觸發(fā),頁面每次顯示時(shí)觸發(fā)一次,包括路由過程、應(yīng)用進(jìn)入前臺(tái)等場(chǎng)景。 onPageHide 從第一個(gè)頁面跳轉(zhuǎn)第二個(gè)

    2024年01月21日
    瀏覽(37)
  • 鴻蒙(HarmonyOS)應(yīng)用開發(fā)——應(yīng)用程序入口UIAbility(題目答案)

    1.一個(gè)應(yīng)用只能有一個(gè)UIAbility。 錯(cuò)誤(False) 解析:可以有多個(gè),也可以有一個(gè) 2.創(chuàng)建的Empty Ability模板工程,初始會(huì)生成一個(gè)UIAbility文件。 正確(True) 3.每調(diào)用一次router.pushUrl()方法,頁面路由棧數(shù)量均會(huì)加1。 錯(cuò)誤(False) 解析: pushUrl()有兩種模式,一種單實(shí)例模式,一種是多實(shí)例

    2024年02月04日
    瀏覽(30)
  • HarmonyOS 應(yīng)用開發(fā)之UIAbility組件間交互(設(shè)備內(nèi))

    HarmonyOS 應(yīng)用開發(fā)之UIAbility組件間交互(設(shè)備內(nèi))

    UIAbility是系統(tǒng)調(diào)度的最小單元。在設(shè)備內(nèi)的功能模塊之間跳轉(zhuǎn)時(shí),會(huì)涉及到啟動(dòng)特定的UIAbility,該UIAbility可以是應(yīng)用內(nèi)的其他UIAbility,也可以是其他應(yīng)用的UIAbility(例如啟動(dòng)三方支付UIAbility)。 本文將從如下場(chǎng)景分別介紹設(shè)備內(nèi)UIAbility間的交互方式。對(duì)于跨設(shè)備的應(yīng)用組件交

    2024年04月12日
    瀏覽(18)
  • 鴻蒙應(yīng)用開發(fā)學(xué)習(xí)路線(OpenHarmony/HarmonyOS)

    鴻蒙應(yīng)用開發(fā)學(xué)習(xí)路線(OpenHarmony/HarmonyOS)

    作者:堅(jiān)果 團(tuán)隊(duì):堅(jiān)果派 公眾號(hào):“大前端之旅” 潤(rùn)開鴻技術(shù)專家,華為HDE,InfoQ簽約作者,OpenHarmony布道師,擅長(zhǎng)HarmonyOS應(yīng)用開發(fā)、熟悉服務(wù)卡片開發(fā),在“戰(zhàn)碼先鋒”活動(dòng)中作為大隊(duì)長(zhǎng),累計(jì)培養(yǎng)三個(gè)小隊(duì)長(zhǎng),帶領(lǐng)100+隊(duì)員完成Pr的提交合入。 歡迎通過主頁或者私信聯(lián)系

    2024年02月15日
    瀏覽(97)
  • HarmonyOS 鴻蒙開發(fā)DevEco Studio OpenHarmony:創(chuàng)建OpenHarmony工程

    目錄 創(chuàng)建和配置新工程 將原子化服務(wù)工程改為應(yīng)用工程 當(dāng)開始開發(fā)一個(gè)OpenHarmony應(yīng)用/服務(wù)時(shí),首先需要根據(jù)工程創(chuàng)建向?qū)?,?chuàng)建一個(gè)新的工程,工具會(huì)自動(dòng)生成對(duì)應(yīng)的代碼和資源模板。 說明 在運(yùn)行DevEco Studio工程時(shí),建議每一個(gè)運(yùn)行窗口有2GB以上的可用內(nèi)存空間。 通過如下

    2024年01月25日
    瀏覽(22)
  • 華為新發(fā)布的鴻蒙與目前華為手機(jī)的鴻蒙系統(tǒng)有什么差異,OpenHarmony、HarmonyOS、HarmonyOS NEXT的區(qū)別詳解

    最近工作中需要進(jìn)行鴻蒙適配,一開始我有個(gè)疑問,今年新發(fā)布的鴻蒙系統(tǒng),與目前華為手機(jī)使用的鴻蒙系統(tǒng)有什么差異?為什么要專門進(jìn)行適配?如果大家也有類似的疑問,看完這篇就明白了。 今年華為在鴻蒙生態(tài)千帆啟航儀式上正式發(fā)布了鴻蒙原生操作系統(tǒng)——HarmonyO

    2024年04月17日
    瀏覽(25)
  • HarmonyOS 鴻蒙開發(fā)DevEco Studio OpenHarmony:編譯構(gòu)建概述

    目錄 OpenHarmony構(gòu)建體系 構(gòu)建工具Hvigor 構(gòu)建插件hvigor-ohos-plugin 工程目錄及配置文件說明 如何構(gòu)建應(yīng)用/服務(wù) 啟動(dòng)應(yīng)用/服務(wù)構(gòu)建 查看編譯過程

    2024年02月22日
    瀏覽(93)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包