頁面棧及任務(wù)鏈
頁面棧
單個UIAbility組件可以實現(xiàn)多個頁面,并在多個頁面之間跳轉(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管理)
- 點擊桌面圖標(biāo)([startAbility])啟動UIAbility1,UIAbility1的初始頁面為Page1。
- 點擊Page1頁面按鈕([Navigator])跳轉(zhuǎn)到Page2頁面。
- 點擊Page2頁面按鈕([Navigator])跳轉(zhuǎn)到Page3頁面。
- 點擊Page3頁面按鈕([startAbility])跳轉(zhuǎn)到UIAbility2,UIAbility2的初始頁面為PageA。
- 點擊PageA頁面按鈕([Navigator])跳轉(zhuǎn)到PageB頁面。
- 點擊PageB頁面按鈕([Navigator])跳轉(zhuǎn)到PageC頁面。
- 頁面棧的返回(下面1/2/4/5步驟為頁面跳轉(zhuǎn),由ArkUI管理)
- 在UIAbility2的PageC頁面點擊返回鍵回到UIAbility2的PageB頁面。
- 在UIAbility2的PageB頁面點擊返回鍵回到UIAbility2的PageA頁面。
- 在UIAbility2的PageA頁面點擊返回鍵跳轉(zhuǎn)到UIAbility1的Page3頁面。
- 在UIAbility1的Page3頁面點擊返回鍵回到UIAbility1的Page2頁面。
- 在UIAbility1的Page2頁面點擊返回鍵回到UIAbility1的Page1頁面。
- 在UIAbility1的Page1頁面點擊返回鍵回到桌面。
- 開發(fā)前請熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[
gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
任務(wù)鏈
上文介紹了頁面棧的返回,如果Ability2頁面棧一層層通過返回鍵返回到最底層,再次點擊返回鍵時,會返回到Ability1。因為在MissionList中記錄了任務(wù)(Mission)之間的啟動關(guān)系,即如果Ability1通過startAbility啟動Ability2,則會形成一個MissionList任務(wù)鏈:Ability1->Ability2,當(dāng)Ability2頁面棧返回到首頁時,再次點擊返回鍵,會返回到Ability1的頁面。
MissionList任務(wù)鏈記錄了任務(wù)之間的拉起關(guān)系,但是這個任務(wù)鏈可能會斷開,有以下幾種情況會導(dǎo)致任務(wù)鏈的斷開:
- 進(jìn)入任務(wù)列表,把任務(wù)鏈中間某個任務(wù)移動到前臺。
- 進(jìn)入任務(wù)列表,把任務(wù)鏈中間某個任務(wù)清理掉。
- 單實例UIAbility的任務(wù),被不同的任務(wù)(包括Ability或桌面)反復(fù)拉起(AbilityB為單例)。
審核編輯 黃宇
-
鴻蒙
+關(guān)注
關(guān)注
60文章
2617瀏覽量
44033
發(fā)布評論請先 登錄
小程序框架頁面棧設(shè)計案例解析
鴻蒙OS開發(fā):典型頁面場景【一次開發(fā),多端部署】實戰(zhàn)(設(shè)置典型頁面)

評論