頁面棧及任務鏈
頁面棧
單個UIAbility組件可以實現多個頁面,并在多個頁面之間跳轉,這種UIAbility組件內部的頁面跳轉關系稱為“頁面棧”,由ArkUI框架統一管理,如下圖中的UIAbility1的Page1->Page2->Page3和UIAbility2的PageA->PageB->PageC。
圖1 頁面棧示意圖
- 頁面棧的形成(下面2/3/5/6步驟為頁面跳轉,由ArkUI管理)
- 點擊桌面圖標([startAbility])啟動UIAbility1,UIAbility1的初始頁面為Page1。
- 點擊Page1頁面按鈕([Navigator])跳轉到Page2頁面。
- 點擊Page2頁面按鈕([Navigator])跳轉到Page3頁面。
- 點擊Page3頁面按鈕([startAbility])跳轉到UIAbility2,UIAbility2的初始頁面為PageA。
- 點擊PageA頁面按鈕([Navigator])跳轉到PageB頁面。
- 點擊PageB頁面按鈕([Navigator])跳轉到PageC頁面。
- 頁面棧的返回(下面1/2/4/5步驟為頁面跳轉,由ArkUI管理)
- 在UIAbility2的PageC頁面點擊返回鍵回到UIAbility2的PageB頁面。
- 在UIAbility2的PageB頁面點擊返回鍵回到UIAbility2的PageA頁面。
- 在UIAbility2的PageA頁面點擊返回鍵跳轉到UIAbility1的Page3頁面。
- 在UIAbility1的Page3頁面點擊返回鍵回到UIAbility1的Page2頁面。
- 在UIAbility1的Page2頁面點擊返回鍵回到UIAbility1的Page1頁面。
- 在UIAbility1的Page1頁面點擊返回鍵回到桌面。
- 開發前請熟悉鴻蒙開發指導文檔 :[
gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
任務鏈
上文介紹了頁面棧的返回,如果Ability2頁面棧一層層通過返回鍵返回到最底層,再次點擊返回鍵時,會返回到Ability1。因為在MissionList中記錄了任務(Mission)之間的啟動關系,即如果Ability1通過startAbility啟動Ability2,則會形成一個MissionList任務鏈:Ability1->Ability2,當Ability2頁面棧返回到首頁時,再次點擊返回鍵,會返回到Ability1的頁面。
MissionList任務鏈記錄了任務之間的拉起關系,但是這個任務鏈可能會斷開,有以下幾種情況會導致任務鏈的斷開:
- 進入任務列表,把任務鏈中間某個任務移動到前臺。
- 進入任務列表,把任務鏈中間某個任務清理掉。
- 單實例UIAbility的任務,被不同的任務(包括Ability或桌面)反復拉起(AbilityB為單例)。
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
鴻蒙
+關注
關注
57文章
2342瀏覽量
42818
發布評論請先 登錄
相關推薦
那些杠鴻蒙的現在怎么樣了?
Android的道路的,好比現在的小米澎湃系統亦是如此。
而作為國家主推的鴻蒙系統,現在展現出未來大好的局面。先后推出4.0、星河版。其中最新星河版已經全面對開發者開發申請。
1、鴻蒙
發表于 02-16 22:03
純血鴻蒙開發教程-運行時動態加載頁面提升性能
,主頁內存占用增加,加載時間變長。此時改用動態加載不再提前加載子頁面,可以有效地避免這些任務阻塞主線程,從而降低整體資源消耗,提高主頁的加載速度。
最后
如果大家覺得這篇內容對學習鴻蒙開發
發表于 05-10 20:52
純血鴻蒙開發教程-耗時分析器Time Profiler使用指導
服務過程中,如果遇到卡頓、加載耗時等性能問題,開發者通常會關注相關函數執行的耗時情況。Profiler提供的Time場景分析任務,可在應用/服務運行時,展示熱點區域內基于CPU和進程耗時分析的調用棧
發表于 05-11 14:13
鴻蒙應用開發基礎術語學習 輕應用
開發者可以通過鴻蒙輕應用,通過點擊關鍵詞解鎖詳細解釋的方式,方便快速第了解鴻蒙的基礎術語。可以獨立作為一個應用發展,也可以作為各種應用中的一個模塊。適合HarmonyOS開發者及潛在
發表于 05-19 18:33
GD32VF103多任務應用中的棧重用
使用FreeRTOS開發應用時,多任務調度器啟動后,由于每個任務都有獨立的堆棧空間,C啟動堆棧不再使用,使嵌入式應用中可用的RAM量減少。如何重用這段RAM空間?棧空間的重用需要利用處
發表于 12-17 15:59
鴻蒙應用開發入門資料合集
的開發難度!贊!2、鴻蒙應用開發入門資料二:開發環境搭建下載HarmonyOS SDK DevEco Studio提供SDK Manager統一管理SDK和這個包依賴的工具
發表于 03-22 11:23
鴻蒙 OS 應用開發初體驗
的操作系統平臺和開發框架。HarmonyOS 的目標是實現跨設備的無縫協同和高性能。
DevEco Studio
對標 Android Studio,開發鴻蒙 OS 應用的 IDE。
啟動
發表于 11-02 19:38
鴻蒙原生應用開發-關于頁面接口router返回問題與解決思路
router.back():返回上一頁面或指定頁面。
router.clear():清空頁面棧中的所有歷史頁面,僅保留當前
發表于 11-15 10:11
基于區塊鏈技術的全棧開發平臺ArcBlock介紹
ArcBlock 區塊基石[1]肩負這樣一項使命:大大簡化區塊鏈技術并將其迅速應用于日常生活之中。為此,他們開發了一個區塊鏈全棧開發平臺,為
發表于 11-22 10:39
?1198次閱讀
評論