頁面棧及任務(wù)鏈
頁面棧
單個(gè)UIAbility組件可以實(shí)現(xiàn)多個(gè)頁面,并在多個(gè)頁面之間跳轉(zhuǎn),這種UIAbility組件內(nèi)部的頁面跳轉(zhuǎn)關(guān)系稱為“頁面?!?,由ArkUI框架統(tǒng)一管理,如下圖中的UIAbility1的Page1->Page2->Page3和UIAbility2的PageA->PageB->PageC。
圖1 頁面棧示意圖
- 頁面棧的形成(下面2/3/5/6步驟為頁面跳轉(zhuǎn),由ArkUI管理)
- 點(diǎn)擊桌面圖標(biāo)([startAbility])啟動(dòng)UIAbility1,UIAbility1的初始頁面為Page1。
- 點(diǎn)擊Page1頁面按鈕([Navigator])跳轉(zhuǎn)到Page2頁面。
- 點(diǎn)擊Page2頁面按鈕([Navigator])跳轉(zhuǎn)到Page3頁面。
- 點(diǎn)擊Page3頁面按鈕([startAbility])跳轉(zhuǎn)到UIAbility2,UIAbility2的初始頁面為PageA。
- 點(diǎn)擊PageA頁面按鈕([Navigator])跳轉(zhuǎn)到PageB頁面。
- 點(diǎn)擊PageB頁面按鈕([Navigator])跳轉(zhuǎn)到PageC頁面。
- 頁面棧的返回(下面1/2/4/5步驟為頁面跳轉(zhuǎn),由ArkUI管理)
- 在UIAbility2的PageC頁面點(diǎn)擊返回鍵回到UIAbility2的PageB頁面。
- 在UIAbility2的PageB頁面點(diǎn)擊返回鍵回到UIAbility2的PageA頁面。
- 在UIAbility2的PageA頁面點(diǎn)擊返回鍵跳轉(zhuǎn)到UIAbility1的Page3頁面。
- 在UIAbility1的Page3頁面點(diǎn)擊返回鍵回到UIAbility1的Page2頁面。
- 在UIAbility1的Page2頁面點(diǎn)擊返回鍵回到UIAbility1的Page1頁面。
- 在UIAbility1的Page1頁面點(diǎn)擊返回鍵回到桌面。
- 開發(fā)前請(qǐng)熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[
gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]
任務(wù)鏈
上文介紹了頁面棧的返回,如果Ability2頁面棧一層層通過返回鍵返回到最底層,再次點(diǎn)擊返回鍵時(shí),會(huì)返回到Ability1。因?yàn)樵贛issionList中記錄了任務(wù)(Mission)之間的啟動(dòng)關(guān)系,即如果Ability1通過startAbility啟動(dòng)Ability2,則會(huì)形成一個(gè)MissionList任務(wù)鏈:Ability1->Ability2,當(dāng)Ability2頁面棧返回到首頁時(shí),再次點(diǎn)擊返回鍵,會(huì)返回到Ability1的頁面。
MissionList任務(wù)鏈記錄了任務(wù)之間的拉起關(guān)系,但是這個(gè)任務(wù)鏈可能會(huì)斷開,有以下幾種情況會(huì)導(dǎo)致任務(wù)鏈的斷開:
- 進(jìn)入任務(wù)列表,把任務(wù)鏈中間某個(gè)任務(wù)移動(dòng)到前臺(tái)。

- 進(jìn)入任務(wù)列表,把任務(wù)鏈中間某個(gè)任務(wù)清理掉。

- 單實(shí)例UIAbility的任務(wù),被不同的任務(wù)(包括Ability或桌面)反復(fù)拉起(AbilityB為單例)。

審核編輯 黃宇
-
鴻蒙
+關(guān)注
關(guān)注
60文章
2839瀏覽量
45334
發(fā)布評(píng)論請(qǐng)先 登錄
小程序框架頁面棧設(shè)計(jì)案例解析
鴻蒙OS開發(fā):典型頁面場景【一次開發(fā),多端部署】實(shí)戰(zhàn)(設(shè)置典型頁面)
那些杠鴻蒙的現(xiàn)在怎么樣了?
純血鴻蒙開發(fā)教程-運(yùn)行時(shí)動(dòng)態(tài)加載頁面提升性能
純血鴻蒙開發(fā)教程-耗時(shí)分析器Time Profiler使用指導(dǎo)
鴻蒙原生頁面高性能解決方案上線OpenHarmony社區(qū) 助力打造高性能原生應(yīng)用
Get這個(gè)秘籍,鴻蒙原生應(yīng)用頁面滑動(dòng)絲滑無比
鴻蒙應(yīng)用開發(fā)入門資料合集
鴻蒙 OS 應(yīng)用開發(fā)初體驗(yàn)
鴻蒙原生應(yīng)用開發(fā)-關(guān)于頁面接口router返回問題與解決思路
什么是順序棧?什么又是鏈棧?
【HarmonyOS 5】鴻蒙頁面和組件生命周期函數(shù)
知乎開源“智能預(yù)渲染框架” 幾行代碼實(shí)現(xiàn)鴻蒙應(yīng)用頁面“秒開”

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