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

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

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

鴻蒙開發(fā):【頁面棧及任務(wù)鏈】

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

頁面棧及任務(wù)鏈

頁面棧

單個UIAbility組件可以實(shí)現(xiàn)多個頁面,并在多個頁面之間跳轉(zhuǎn),這種UIAbility組件內(nèi)部的頁面跳轉(zhuǎn)關(guān)系稱為“頁面?!?,由ArkUI框架統(tǒng)一管理,如下圖中的UIAbility1的Page1->Page2->Page3和UIAbility2的PageA->PageB->PageC。

圖1 頁面棧示意圖
mission-record

  • 頁面棧的形成(下面2/3/5/6步驟為頁面跳轉(zhuǎn),由ArkUI管理)
    1. 點(diǎn)擊桌面圖標(biāo)([startAbility])啟動UIAbility1,UIAbility1的初始頁面為Page1。
    2. 點(diǎn)擊Page1頁面按鈕([Navigator])跳轉(zhuǎn)到Page2頁面。
    3. 點(diǎn)擊Page2頁面按鈕([Navigator])跳轉(zhuǎn)到Page3頁面。
    4. 點(diǎn)擊Page3頁面按鈕([startAbility])跳轉(zhuǎn)到UIAbility2,UIAbility2的初始頁面為PageA。
    5. 點(diǎn)擊PageA頁面按鈕([Navigator])跳轉(zhuǎn)到PageB頁面。
    6. 點(diǎn)擊PageB頁面按鈕([Navigator])跳轉(zhuǎn)到PageC頁面。
  • 頁面棧的返回(下面1/2/4/5步驟為頁面跳轉(zhuǎn),由ArkUI管理)
    1. 在UIAbility2的PageC頁面點(diǎn)擊返回鍵回到UIAbility2的PageB頁面。
    2. 在UIAbility2的PageB頁面點(diǎn)擊返回鍵回到UIAbility2的PageA頁面。
    3. 在UIAbility2的PageA頁面點(diǎn)擊返回鍵跳轉(zhuǎn)到UIAbility1的Page3頁面。
    4. 在UIAbility1的Page3頁面點(diǎn)擊返回鍵回到UIAbility1的Page2頁面。
    5. 在UIAbility1的Page2頁面點(diǎn)擊返回鍵回到UIAbility1的Page1頁面。
    6. 在UIAbility1的Page1頁面點(diǎn)擊返回鍵回到桌面。
    7. 開發(fā)前請熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]
      鴻蒙文檔.png

任務(wù)鏈

上文介紹了頁面棧的返回,如果Ability2頁面棧一層層通過返回鍵返回到最底層,再次點(diǎn)擊返回鍵時,會返回到Ability1。因?yàn)樵贛issionList中記錄了任務(wù)(Mission)之間的啟動關(guān)系,即如果Ability1通過startAbility啟動Ability2,則會形成一個MissionList任務(wù)鏈:Ability1->Ability2,當(dāng)Ability2頁面棧返回到首頁時,再次點(diǎn)擊返回鍵,會返回到Ability1的頁面。

MissionList任務(wù)鏈記錄了任務(wù)之間的拉起關(guān)系,但是這個任務(wù)鏈可能會斷開,有以下幾種情況會導(dǎo)致任務(wù)鏈的斷開:

  • 進(jìn)入任務(wù)列表,把任務(wù)鏈中間某個任務(wù)移動到前臺。
    mission-chain1
  • 進(jìn)入任務(wù)列表,把任務(wù)鏈中間某個任務(wù)清理掉。
    mission-chain2
  • 單實(shí)例UIAbility的任務(wù),被不同的任務(wù)(包括Ability或桌面)反復(fù)拉起(AbilityB為單例)。
    mission-chain3

審核編輯 黃宇

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

    關(guān)注

    57

    文章

    2302

    瀏覽量

    42689
收藏 人收藏

    評論

    相關(guān)推薦

    小程序框架頁面設(shè)計案例解析

    從分析中,我們需要明白的一個重要問題就是,當(dāng)客戶按返回按鈕的時候究竟會跳轉(zhuǎn)到那個界面,這是我們分析頁面變化的的意義。
    的頭像 發(fā)表于 11-04 13:55 ?3501次閱讀

    嵌入式RTOS的 任務(wù) 和 系統(tǒng)

    簡介明了帶你了解嵌入式RTOS的 任務(wù) 和 系統(tǒng)
    的頭像 發(fā)表于 05-16 09:57 ?2981次閱讀
    嵌入式RTOS的 <b class='flag-5'>任務(wù)</b><b class='flag-5'>棧</b> 和 系統(tǒng)<b class='flag-5'>棧</b>

    鴻蒙OS開發(fā):典型頁面場景【一次開發(fā),多端部署】實(shí)戰(zhàn)(設(shè)置典型頁面

    本示例展示了設(shè)置應(yīng)用的典型頁面,其在小窗口和大窗口有不同的顯示效果,體現(xiàn)一次開發(fā)、多端部署的能力。
    的頭像 發(fā)表于 05-27 09:36 ?1064次閱讀
    <b class='flag-5'>鴻蒙</b>OS<b class='flag-5'>開發(fā)</b>:典型<b class='flag-5'>頁面</b>場景【一次<b class='flag-5'>開發(fā)</b>,多端部署】實(shí)戰(zhàn)(設(shè)置典型<b class='flag-5'>頁面</b>)

    那些杠鴻蒙的現(xiàn)在怎么樣了?

    Android的道路的,好比現(xiàn)在的小米澎湃系統(tǒng)亦是如此。 而作為國家主推的鴻蒙系統(tǒng),現(xiàn)在展現(xiàn)出未來大好的局面。先后推出4.0、星河版。其中最新星河版已經(jīng)全面對開發(fā)開發(fā)申請。 1、鴻蒙
    發(fā)表于 02-16 22:03

    純血鴻蒙開發(fā)教程-運(yùn)行時動態(tài)加載頁面提升性能

    ,主頁內(nèi)存占用增加,加載時間變長。此時改用動態(tài)加載不再提前加載子頁面,可以有效地避免這些任務(wù)阻塞主線程,從而降低整體資源消耗,提高主頁的加載速度。 最后 如果大家覺得這篇內(nèi)容對學(xué)習(xí)鴻蒙開發(fā)
    發(fā)表于 05-10 20:52

    純血鴻蒙開發(fā)教程-耗時分析器Time Profiler使用指導(dǎo)

    服務(wù)過程中,如果遇到卡頓、加載耗時等性能問題,開發(fā)者通常會關(guān)注相關(guān)函數(shù)執(zhí)行的耗時情況。Profiler提供的Time場景分析任務(wù),可在應(yīng)用/服務(wù)運(yùn)行時,展示熱點(diǎn)區(qū)域內(nèi)基于CPU和進(jìn)程耗時分析的調(diào)用
    發(fā)表于 05-11 14:13

    鴻蒙應(yīng)用開發(fā)基礎(chǔ)術(shù)語學(xué)習(xí) 輕應(yīng)用

    開發(fā)者可以通過鴻蒙輕應(yīng)用,通過點(diǎn)擊關(guān)鍵詞解鎖詳細(xì)解釋的方式,方便快速第了解鴻蒙的基礎(chǔ)術(shù)語??梢元?dú)立作為一個應(yīng)用發(fā)展,也可以作為各種應(yīng)用中的一個模塊。適合HarmonyOS開發(fā)者及潛在
    發(fā)表于 05-19 18:33

    GD32VF103多任務(wù)應(yīng)用中的重用

    使用FreeRTOS開發(fā)應(yīng)用時,多任務(wù)調(diào)度器啟動后,由于每個任務(wù)都有獨(dú)立的堆??臻g,C啟動堆棧不再使用,使嵌入式應(yīng)用中可用的RAM量減少。如何重用這段RAM空間?空間的重用需要利用處
    發(fā)表于 12-17 15:59

    鴻蒙應(yīng)用開發(fā)入門資料合集

    開發(fā)難度!贊!2、鴻蒙應(yīng)用開發(fā)入門資料二:開發(fā)環(huán)境搭建下載HarmonyOS SDK DevEco Studio提供SDK Manager統(tǒng)一管理SDK和這個包依賴的工具
    發(fā)表于 03-22 11:23

    鴻蒙 OS 應(yīng)用開發(fā)初體驗(yàn)

    的操作系統(tǒng)平臺和開發(fā)框架。HarmonyOS 的目標(biāo)是實(shí)現(xiàn)跨設(shè)備的無縫協(xié)同和高性能。 DevEco Studio 對標(biāo) Android Studio,開發(fā)鴻蒙 OS 應(yīng)用的 IDE。 啟動
    發(fā)表于 11-02 19:38

    鴻蒙原生應(yīng)用開發(fā)-關(guān)于頁面接口router返回問題與解決思路

    router.back():返回上一頁面或指定頁面。 router.clear():清空頁面中的所有歷史頁面,僅保留當(dāng)前
    發(fā)表于 11-15 10:11

    基于區(qū)塊技術(shù)的全開發(fā)平臺ArcBlock介紹

    ArcBlock 區(qū)塊基石[1]肩負(fù)這樣一項(xiàng)使命:大大簡化區(qū)塊技術(shù)并將其迅速應(yīng)用于日常生活之中。為此,他們開發(fā)了一個區(qū)塊開發(fā)平臺,為
    發(fā)表于 11-22 10:39 ?1188次閱讀

    淺談鴻蒙內(nèi)核源碼的

    上面的代碼和鴻蒙內(nèi)核用方式一樣,都采用了遞減滿的方式, 什么是遞減滿?
    的頭像 發(fā)表于 04-24 11:21 ?1411次閱讀
    淺談<b class='flag-5'>鴻蒙</b>內(nèi)核源碼的<b class='flag-5'>棧</b>

    什么是順序?什么又是?

    是一種后進(jìn)先出的數(shù)據(jù)結(jié)構(gòu),的實(shí)現(xiàn)方式主要有2種,順序
    的頭像 發(fā)表于 06-15 10:50 ?3093次閱讀

    鴻蒙OS開發(fā):典型頁面場景【一次開發(fā),多端部署】(功能開發(fā)

    應(yīng)用開發(fā)至少包含兩部分工作: UI頁面開發(fā)和底層功能開發(fā)(部分需要聯(lián)網(wǎng)的應(yīng)用還會涉及服務(wù)端開發(fā))。前面章節(jié)介紹了如何解決
    的頭像 發(fā)表于 05-28 17:32 ?504次閱讀
    <b class='flag-5'>鴻蒙</b>OS<b class='flag-5'>開發(fā)</b>:典型<b class='flag-5'>頁面</b>場景【一次<b class='flag-5'>開發(fā)</b>,多端部署】(功能<b class='flag-5'>開發(fā)</b>)