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

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

這篇具有很好參考價值的文章主要介紹了【鴻蒙軟件開發(fā)】UIAbility組件概況、生命周期與啟動模式。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


前言

UIAbility組件是一種包含UI界面的應用組件,主要用于和用戶交互。

UIAbility組件是系統(tǒng)調(diào)度的基本單元,為應用提供繪制界面的窗口;一個UIAbility組件中可以通過多個頁面來實現(xiàn)一個功能模塊。每一個UIAbility組件實例,都對應于一個最近任務列表中的任務。


一、UIAbility概況

1.1 概況介紹

UIAbility組件是一種包含UI界面的應用組件,主要用于和用戶交互。

UIAbility組件是系統(tǒng)調(diào)度的基本單元,為應用提供繪制界面的窗口;一個UIAbility組件中可以通過多個頁面來實現(xiàn)一個功能模塊。每一個UIAbility組件實例,都對應于一個最近任務列表中的任務。

我們可以通過上述的抽象概念下出下面通俗易懂的解釋:
UIAbility組件就像是你手機上的一個應用,它負責展示應用的用戶界面,你可以通過它來和應用進行互動。每個UIAbility組件可以包含多個不同的界面,就像應用中的不同頁面。每次你在手機上打開一個應用,實際上是啟動了一個UIAbility組件的實例,這個應用會在最近任務列表中顯示。這個機制讓你能夠輕松切換和管理不同應用和它們的界面。

1.2 聲明配置

為使應用能夠正常使用UIAbility,需要在module.json5配置文件的abilities標簽中聲明UIAbility的名稱、入口、標簽等相關信息。
鴻蒙ability生命周期,harmonyos,華為,android,1024程序員節(jié),鴻蒙系統(tǒng),鴻蒙軟件開發(fā),ArkTS

以下是我們可以進行設置的參數(shù):

{
  "module": {
    // ...
    "abilities": [
      {
        "name": "EntryAbility", // UIAbility組件的名稱
        "srcEntrance": "./ets/entryability/EntryAbility.ts", // UIAbility組件的代碼路徑
        "description": "$string:EntryAbility_desc", // UIAbility組件的描述信息
        "icon": "$media:icon", // UIAbility組件的圖標
        "label": "$string:EntryAbility_label", // UIAbility組件的標簽
        "startWindowIcon": "$media:icon", // UIAbility組件啟動頁面圖標資源文件的索引
        "startWindowBackground": "$color:start_window_background", // UIAbility組件啟動頁面背景顏色資源文件的索引
        // ...
      }
    ]
  }
}

鴻蒙ability生命周期,harmonyos,華為,android,1024程序員節(jié),鴻蒙系統(tǒng),鴻蒙軟件開發(fā),ArkTS

二、UIAbility組件生命周期

2.1 基本概念

由于文檔可能有點抽象,我將用我的解釋來代替文檔中的解釋:
UIAbility就像是應用中的一個窗口或界面,它有自己的生命周期,就像一個角色有不同的狀態(tài)。這個生命周期包括四個狀態(tài):

Create(創(chuàng)建):當用戶打開應用或者切換到應用時,UIAbility被創(chuàng)建。就好像你打開一個應用,應用的界面被呈現(xiàn)在屏幕上。

Foreground(前臺):當應用界面處于活躍狀態(tài)時,它處于前臺狀態(tài)。這就像你正在使用一個應用,它是當前的焦點。

Background(后臺):如果你切換到了其他應用,原來的應用就進入了后臺狀態(tài)。UIAbility也會相應地從前臺變成后臺狀態(tài)。

Destroy(銷毀):當你關閉應用或者應用被系統(tǒng)銷毀時,UIAbility也會被銷毀。就像你關閉一個應用,它的界面消失了。

這些狀態(tài)變化可以幫助應用了解UIAbility在不同時刻的狀態(tài),從而執(zhí)行不同的操作或者保持應用的一致性。

鴻蒙ability生命周期,harmonyos,華為,android,1024程序員節(jié),鴻蒙系統(tǒng),鴻蒙軟件開發(fā),ArkTS
他可以用這個流程圖表示。

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

Create狀態(tài)

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

我們?nèi)绾稳フ业剿?br> 如圖所示,打開EntryAbility.ts的typescript文件
鴻蒙ability生命周期,harmonyos,華為,android,1024程序員節(jié),鴻蒙系統(tǒng),鴻蒙軟件開發(fā),ArkTS

鴻蒙ability生命周期,harmonyos,華為,android,1024程序員節(jié),鴻蒙系統(tǒng),鴻蒙軟件開發(fā),ArkTS
這個即使創(chuàng)建函數(shù),我們可以使用ts的console.log打印一些提示信息:

onCreate(want, launchParam) {
    console.log("i am create!")
  }

WindowStageCreate和WindowStageDestroy狀態(tài)

我覺得文檔對于初學者比較抽象一點,我們可以寫成下方的更好理解的話術:
當你的應用程序啟動時,系統(tǒng)會為每個UIAbility實例創(chuàng)建一個WindowStage(窗口舞臺)。這個WindowStage就像是應用界面的舞臺,上面可以加載各種UI元素。

在WindowStage創(chuàng)建完成后,系統(tǒng)會調(diào)用onWindowStageCreate()這個回調(diào)函數(shù)。在這個函數(shù)里,你可以設置你的UI界面,比如加載各種頁面,設置UI元素的樣式等。你還可以訂閱WindowStage的事件,比如獲得焦點(用戶正在與應用交互)或失去焦點(應用不再是用戶的焦點)、可見或不可見等。這些事件讓你的應用能夠響應用戶的操作。

在onWindowStageCreate()回調(diào)函數(shù)中,通常會使用loadContent()方法來加載應用要顯示的頁面。同時,你也可以根據(jù)需要訂閱各種WindowStage事件,以便在用戶操作發(fā)生時做出相應的響應。
當用戶退出應用或者應用被系統(tǒng)銷毀時,對應的UIAbility實例會被銷毀。在這之前,系統(tǒng)會先調(diào)用onWindowStageDestroy()回調(diào)函數(shù)。在這個函數(shù)里,你可以釋放UI界面所占用的資源,做一些清理工作。比如,你可以在這里注銷之前訂閱的獲得焦點或失去焦點等WindowStage事件,以確保資源被正確釋放,應用退出時不會出現(xiàn)問題。

這樣,通過在WindowStage的創(chuàng)建和銷毀過程中設置相應的回調(diào)函數(shù),你的應用就能夠在不同的階段執(zhí)行不同的操作,從而保證用戶體驗的一致性和應用的穩(wěn)定性。

我們還可以通過字和流程圖一起來體會。
鴻蒙ability生命周期,harmonyos,華為,android,1024程序員節(jié),鴻蒙系統(tǒng),鴻蒙軟件開發(fā),ArkTS

Foreground和Background狀態(tài)

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

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

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

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

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

上述即是這兩個函數(shù):
鴻蒙ability生命周期,harmonyos,華為,android,1024程序員節(jié),鴻蒙系統(tǒng),鴻蒙軟件開發(fā),ArkTS
我們在這邊如果想體驗這兩個函數(shù),我們需要使用本地虛擬機/真機,注意:預覽模式是查看不了這兩個函數(shù)執(zhí)行的

Destroy狀態(tài)

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

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

三、UIAbility的啟動模式

UIAbility的啟動模式是指UIAbility實例在啟動時的不同呈現(xiàn)狀態(tài)。針對不同的業(yè)務場景,系統(tǒng)提供了三種啟動模式:
singleton(單實例模式)
standard(標準實例模式)
specified(指定實例模式)

3.1 singleton啟動模式

由于文檔中比較抽象,我們可以使用下面的語言來代替:

"Singleton啟動模式"是一種應用程序的啟動方式,通常是默認的啟動方式。在這個模式下,每當你使用startAbility()方法來啟動一個UIAbility(用戶界面能力)時,如果已經(jīng)存在相同類型的UIAbility實例,系統(tǒng)會復用現(xiàn)有的實例,而不會創(chuàng)建新的。這意味著在最近任務列表中,只會存在一個該類型的UIAbility實例。

以通俗的方式來說,就好像你有一個應用,當你多次打開同一功能頁面時,不會為每次打開都創(chuàng)建新的頁面,而是會重新使用已經(jīng)存在的頁面。這樣可以節(jié)省系統(tǒng)資源,提高應用的運行效率,而且在最近任務列表中只會看到一個相同類型的頁面。這個模式通常用于確保應用不會出現(xiàn)大量相同的界面實例,以提供更好的用戶體驗和系統(tǒng)性能。

說明

應用的UIAbility實例已創(chuàng)建,該UIAbility配置為單實例模式,再次調(diào)用startAbility()方法啟動該UIAbility實例,此時只會進入該UIAbility的onNewWant()回調(diào),不會進入其onCreate()和onWindowStageCreate()生命周期回調(diào)。

進行配置singleton模式

如果需要使用singleton啟動模式,在module.json5配置文件中的"launchType"字段配置為"singleton"即可。

鴻蒙ability生命周期,harmonyos,華為,android,1024程序員節(jié),鴻蒙系統(tǒng),鴻蒙軟件開發(fā),ArkTS

3.2 standard啟動模式

standard啟動模式為標準實例模式,每次調(diào)用startAbility()方法時,都會在應用進程中創(chuàng)建一個新的該類型UIAbility實例。即在最近任務列表中可以看到有多個該類型的UIAbility實例。這種情況下可以將UIAbility配置為standard(標準實例模式)。

standard模式設置

standard啟動模式的開發(fā)使用,在module.json5配置文件中的"launchType"字段配置為"standard"即可。

3.3 specified啟動模式

"Specified啟動模式"是一種特殊的啟動模式,通常用于特定場景,比如文檔編輯應用。它允許開發(fā)者在創(chuàng)建UIAbility實例之前為該實例指定一個唯一的標識字符串(稱為Key)。當UIAbility實例與這個Key綁定之后,在后續(xù)調(diào)用startAbility()方法時,系統(tǒng)會詢問應用要打開哪個與特定Key綁定的UIAbility實例。

這種方式可以理解為每個UIAbility實例都有一個特定的身份標識(Key)。每次開發(fā)者啟動UIAbility時,系統(tǒng)會根據(jù)這個Key來判斷是復用已存在的特定Key綁定的UIAbility實例,還是創(chuàng)建一個新的實例。例如,在文檔編輯應用中,如果你想新建一個文檔,可以使用一個新的Key,這將創(chuàng)建一個新的UIAbility實例;但如果你想打開一個已保存的文檔,可以使用該文檔對應的Key,這將打開與之綁定的已存在的UIAbility實例。

所以,這種模式允許應用在運行時根據(jù)特定的Key來決定是否創(chuàng)建新實例或復用已有實例,以便滿足不同的業(yè)務需求,比如確保每個文檔有自己獨立的編輯界面或者確保打開相同文檔時共享同一個界面。

說明

應用的UIAbility實例已創(chuàng)建,該UIAbility配置為指定實例模式,再次調(diào)用startAbility()方法啟動該UIAbility實例,且AbilityStage的onAcceptWant()回調(diào)匹配到一個已創(chuàng)建的UIAbility實例。此時,再次啟動該UIAbility時,只會進入該UIAbility的onNewWant()回調(diào),不會進入其onCreate()和onWindowStageCreate()生命周期回調(diào)。


總結

UIAbility組件是一種包含UI界面的應用組件,主要用于和用戶交互。

UIAbility組件是系統(tǒng)調(diào)度的基本單元,為應用提供繪制界面的窗口;一個UIAbility組件中可以通過多個頁面來實現(xiàn)一個功能模塊。每一個UIAbility組件實例,都對應于一個最近任務列表中的任務。

學習這些對于我們來說非常重要:UIAbility組件概況、生命周期與啟動模式文章來源地址http://www.zghlxwxcb.cn/news/detail-755517.html

到了這里,關于【鴻蒙軟件開發(fā)】UIAbility組件概況、生命周期與啟動模式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關文章

  • 【鴻蒙軟件開發(fā)】ArkTS基礎組件之TextTimer(文本顯示計時)、TimePicker(時間選擇)

    【鴻蒙軟件開發(fā)】ArkTS基礎組件之TextTimer(文本顯示計時)、TimePicker(時間選擇)

    通過文本顯示計時信息并控制其計時器狀態(tài)的組件。 時間選擇組件,根據(jù)指定參數(shù)創(chuàng)建選擇器,支持選擇小時及分鐘。 通過文本顯示計時信息并控制其計時器狀態(tài)的組件。 說明 該組件從API Version 8開始支持。后續(xù)版本如有新增內(nèi)容,則會更新新版博客。 無 使用下面這個接口

    2024年02月07日
    瀏覽(20)
  • 鴻蒙開發(fā):UIAbility組件間交互探索實戰(zhàn)【鴻蒙專欄-22】

    在設備內(nèi),UIAbility(用戶界面能力)是系統(tǒng)調(diào)度的最小單元,它們負責展示用戶界面和執(zhí)行相關的業(yè)務邏輯。設備內(nèi)的不同功能模塊之間的交互是應用程序開發(fā)中的重要部分。本文將探討設備內(nèi)UIAbility之間的交互方式,包括啟動應用內(nèi)的UIAbility、啟動其他應用的UIAbility以及通

    2024年02月05日
    瀏覽(22)
  • 鴻蒙開發(fā):UIAbility組件間交互探索實戰(zhàn)

    在設備內(nèi),UIAbility(用戶界面能力)是系統(tǒng)調(diào)度的最小單元,它們負責展示用戶界面和執(zhí)行相關的業(yè)務邏輯。設備內(nèi)的不同功能模塊之間的交互是應用程序開發(fā)中的重要部分。本文將探討設備內(nèi)UIAbility之間的交互方式,包括啟動應用內(nèi)的UIAbility、啟動其他應用的UIAbility以及通

    2024年02月04日
    瀏覽(26)
  • 鴻蒙軟件開發(fā)0基礎入門

    鴻蒙軟件開發(fā)0基礎入門

    今天,萬眾矚目的純血版鴻蒙星河HarmonyOS NEXT發(fā)布了,鴻蒙操作系統(tǒng)(HarmonyOS)作為華為開發(fā)的面向全場景分布式智能終端的操作系統(tǒng),對于初學者入門開發(fā),以下是一些基本步驟和要點: 1. 開發(fā)環(huán)境準備 安裝DevEco Studio :首先需要下載并安裝華為提供的集成開發(fā)環(huán)境(IDE)

    2024年01月21日
    瀏覽(50)
  • 什么是軟件開發(fā)生命周期(SDLC)?

    軟件開發(fā)生命周期(SDLC)指的是從軟件項目開始到最終交付的整個過程。它是軟件開發(fā)過程的指導框架,用于規(guī)劃、開發(fā)、測試、部署和維護軟件系統(tǒng)。 SDLC包含了一系列階段,每個階段都有特定的任務、活動和產(chǎn)物。這些階段通常包括以下幾個常見的階段: 需求分析:在這

    2024年02月10日
    瀏覽(22)
  • DevOps 在改進軟件開發(fā)生命周期中的作用

    DevOps 在改進軟件開發(fā)生命周期中的作用

    ????? 軟件開發(fā)是一個復雜多變的領域,需要不斷地投入、迭代和協(xié)作。在當今激烈的市場競爭中,對可靠、及時和高質(zhì)量解決方案的需求空前高漲。DevOps 是一種革命性的方法,是應對這些挑戰(zhàn)的基礎。DevOps 不僅僅是一種方法,它還將軟件開發(fā)和 IT 運營無縫整合在一起,

    2024年02月19日
    瀏覽(28)
  • OpenHarmony—UIAbility組件生命周期

    OpenHarmony—UIAbility組件生命周期

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

    2024年02月20日
    瀏覽(32)
  • 鴻蒙開發(fā)之頁面與組件生命周期

    鴻蒙開發(fā)之頁面與組件生命周期

    創(chuàng)建文件的時候記得選擇創(chuàng)建page文件,這樣就可以在main-resources-profile-main_pages.json中自動形成頁面對應的路由了。如果創(chuàng)建的時候你選擇了ArkTS文件,那么需要手動修改main_pages.json文件中,添加相應的鍵值對。 在json文件中我們看到第二個頁面的路由是\\\"pages/Page222\\\"。那么,我們

    2024年02月04日
    瀏覽(23)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領取紅包

二維碼2

領紅包