一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

鴻蒙OS 跨設(shè)備遷移

王程 ? 2024-01-31 15:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

跨設(shè)備遷移(下文簡稱“遷移”)支持將 Page 在同一用戶的不同設(shè)備間遷移,以便支持用戶無縫切換的訴求。以 Page 從設(shè)備 A 遷移到設(shè)備 B 為例,遷移動作主要步驟如下:

  • 設(shè)備 A 上的 Page 請求遷移。
  • HarmonyOS 處理遷移任務(wù),并回調(diào)設(shè)備 A 上 Page 的保存數(shù)據(jù)方法,用于保存遷移必須的數(shù)據(jù)。
  • HarmonyOS 在設(shè)備 B 上啟動同一個 Page,并回調(diào)其恢復(fù)數(shù)據(jù)方法。
    開發(fā)者可以參考以下詳細(xì)步驟開發(fā)具有遷移功能的 Page。

實現(xiàn) IAbilityContinuation 接口

onStartContinuation()
Page 請求遷移后,系統(tǒng)首先回調(diào)此方法,開發(fā)者可以在此回調(diào)中決策當(dāng)前是否可以執(zhí)行遷移,比如,彈框讓用戶確認(rèn)是否開始遷移。

onSaveData()
如果 onStartContinuation() 返回 true ,則系統(tǒng)回調(diào)此方法,開發(fā)者在此回調(diào)中保存必須傳遞到另外設(shè)備上以便恢復(fù) Page 狀態(tài)的數(shù)據(jù)。

onRestoreData()
源側(cè)設(shè)備上 Page 完成保存數(shù)據(jù)后,系統(tǒng)在目標(biāo)側(cè)設(shè)備上回調(diào)此方法,開發(fā)者在此回調(diào)中接受用于恢復(fù) Page 狀態(tài)的數(shù)據(jù)。注意,在目標(biāo)側(cè)設(shè)備上的 Page 會重新啟動其生命周期,無論其啟動模式如何配置。且系統(tǒng)回調(diào)此方法的時機(jī)在 onStart() 之前。

onCompleteContinuation()
目標(biāo)側(cè)設(shè)備上恢復(fù)數(shù)據(jù)一旦完成,系統(tǒng)就會在源側(cè)設(shè)備上回調(diào) Page 的此方法,以便通知應(yīng)用遷移流程已結(jié)束。開發(fā)者可以在此檢查遷移結(jié)果是否成功,并在此處理遷移結(jié)束的動作,例如,應(yīng)用可以在遷移完成后終止自身生命周期。

onRemoteTerminated()
如果開發(fā)者使用 continueAbilityReversibly() 而不是 continueAbility(),則此后可以在源側(cè)設(shè)備上使用 reverseContinueAbility() 進(jìn)行回遷。這種場景下,相當(dāng)于同一個 Page(的兩個實例)同時在兩個設(shè)備上運行,遷移完成后,如果目標(biāo)側(cè)設(shè)備上 Page 因任何原因終止,則源側(cè) Page 通過此回調(diào)接收終止通知。

說明
一個應(yīng)用可能包含多個 Page,僅支持遷移的 Page 需要實現(xiàn) IAbilityContinuation 接口。同時,此 Page 所包含的所有 AbilitySlice 也需要實現(xiàn)此接口。

請求遷移

實現(xiàn) IAbilityContinuation 的 Page 可以在其生命周期內(nèi),調(diào)用 continueAbility() 或 continueAbilityReversibly() 請求遷移。兩者的區(qū)別是,通過后者發(fā)起的遷移此后可以進(jìn)行回遷。

try {
    continueAbility();
} catch (IllegalStateException e) {
    // Maybe another continuation in progress.
    ...
}

以 Page 從設(shè)備 A 遷移到設(shè)備B為例,詳細(xì)的流程如下:

1.設(shè)備 A 上的 Page 請求遷移。
2.系統(tǒng)回調(diào)設(shè)備 A 上 Page 及其 AbilitySlice 棧中所有 AbilitySlice 實例的 IAbilityContinuation.onStartContinuation() 方法,以確認(rèn)當(dāng)前是否可以立即遷移。
3.如果可以立即遷移,則系統(tǒng)回調(diào)設(shè)備 A 上 Page 及其 AbilitySlice 棧中所有 AbilitySlice 實例的 IAbilityContinuation.onSaveData() 方法,以便保存遷移后恢復(fù)狀態(tài)必須的數(shù)據(jù)。
4.如果保存數(shù)據(jù)成功,則系統(tǒng)在設(shè)備 B 上啟動同一個 Page ,并恢復(fù) AbilitySlice 棧,然后回調(diào) IAbilityContinuation.onRestoreData() 方法,傳遞此前保存的數(shù)據(jù);此后設(shè)備 B 上此 Page 從 onStart() 開始其生命周期回調(diào)。
6.系統(tǒng)回調(diào)設(shè)備 A 上 Page 及其 AbilitySlice 棧中所有 AbilitySlice 實例的 IAbilityContinuation.onCompleteContinuation() 方法,通知數(shù)據(jù)恢復(fù)成功與否。

請求回遷

使用 continueAbilityReversibly() 請求遷移并完成后,源側(cè)設(shè)備上已遷移的 Page 可以發(fā)起回遷,以便使用戶活動重新回到此設(shè)備。

try {
    reverseContinueAbility();
} catch (IllegalStateException e) {
    // Maybe another continuation in progress.
    ...
}

以Page從設(shè)備A遷移到設(shè)備B后并請求回遷為例,詳細(xì)的流程如下:

1.設(shè)備 A 上的 Page 請求回遷。
2.系統(tǒng)回調(diào)設(shè)備 B 上 Page 及其 AbilitySlice 棧中所有 AbilitySlice 實例的 IAbilityContinuation.onStartContinuation() 方法,以確認(rèn)當(dāng)前是否可以立即遷移。
3.如果可以立即遷移,則系統(tǒng)回調(diào)設(shè)備 B 上 Page 及其 AbilitySlice 棧中所有 AbilitySlice 實例的 IAbilityContinuation.onSaveData() 方法,以便保存回遷后恢復(fù)狀態(tài)必須的數(shù)據(jù)。
4.如果保存數(shù)據(jù)成功,則系統(tǒng)在設(shè)備 A 上 Page 恢復(fù) AbilitySlice 棧,然后回調(diào) IAbilityContinuation.onRestoreData() 方法,傳遞此前保存的數(shù)據(jù)。
5.如果數(shù)據(jù)恢復(fù)成功,則系統(tǒng)終止設(shè)備 B 上 Page 的生命周期。

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

    關(guān)注

    60

    文章

    2620

    瀏覽量

    44063
  • HarmonyOS
    +關(guān)注

    關(guān)注

    80

    文章

    2126

    瀏覽量

    33102
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    AKI語言調(diào)用庫神助攻C/C++代碼遷移至HarmonyOS NEXT

    /C++代碼快速遷移至HarmonyOS NEXT。憑借卓越的兼容性,AKI已成為廠商與開發(fā)者打造鴻蒙原生應(yīng)用過程中廣泛使用的語言調(diào)用解決方案。 AKI是一款專為鴻蒙原生開發(fā)設(shè)計的
    發(fā)表于 01-02 17:08

    如何理解鴻蒙OS設(shè)備的?

    誰能幫忙解釋鴻蒙OS是怎樣實現(xiàn)平臺的?
    發(fā)表于 09-08 18:17

    鴻蒙OS適用的全場景到底什么意思?

    上,未來會有越來越多的智能設(shè)備使用開源的鴻蒙OS。華為消費者業(yè)務(wù)CEO余承東在介紹鴻蒙OS開發(fā)初衷時表示:“隨著全場景智慧時代的到來,華為認(rèn)
    發(fā)表于 09-25 09:25

    鴻蒙os系統(tǒng)是什么意思 鴻蒙os系統(tǒng)有什么作用

    適配智慧屏,未來它將適配手機(jī),平板,電腦,智能汽車,可穿戴設(shè)備等多終端設(shè)備。鴻蒙微內(nèi)核是基于微內(nèi)核的全場景分布式OS,可按需擴(kuò)展,實現(xiàn)更廣泛的系統(tǒng)安全,主要用于物聯(lián)網(wǎng),特點是低時延,甚
    發(fā)表于 12-17 11:34

    HarmonyOS分布式——設(shè)備遷移

    HarmonyOS分布式——設(shè)備遷移
    發(fā)表于 06-26 14:34

    通過HarmonyOS分布式能力實現(xiàn)任務(wù)的設(shè)備遷移設(shè)計資料分享

    的文檔或圖片素材,此時需要在不同設(shè)備間反復(fù)操作。想要解決這些問題,我們可以通過 HarmonyOS 的分布式能力實現(xiàn)任務(wù)的設(shè)備遷移,保證業(yè)務(wù)在手機(jī)、平板等終端間無縫銜接,輕松的完成多
    發(fā)表于 03-25 16:59

    HarmonyOS應(yīng)用開發(fā)-DiseributedVideoCodelab設(shè)備視頻遷移

    說明:此Demo用于設(shè)備遷移視頻內(nèi)容。您可以方便地跨設(shè)備遷移視頻內(nèi)容,然后在源設(shè)備遠(yuǎn)程控制、操
    發(fā)表于 07-05 10:24

    華為鴻蒙OS正式發(fā)布 它的安全性能如何

    鴻蒙OS采用全新的微內(nèi)核設(shè)計,安全性更強(qiáng),時延更低,同時還將用于可信執(zhí)行環(huán)境,通過形式化的方式提升可信安全;鴻蒙OS可通過統(tǒng)一多終端開發(fā)工具IDE進(jìn)行開發(fā),方便開發(fā)者進(jìn)行多語言統(tǒng)一編譯
    的頭像 發(fā)表于 08-09 17:25 ?2118次閱讀

    華為鴻蒙OS又有嚇人的設(shè)計 蘋果的Carplay在鴻蒙OS面前真的自嘆不如

    的終端,包括汽車、電視機(jī)、手機(jī)、可穿戴設(shè)備等等終端上,所以華為鴻蒙OS的使用范圍從介紹上來看還是非常廣泛地。
    的頭像 發(fā)表于 08-27 10:25 ?9144次閱讀

    鴻蒙OS與Lite OS的區(qū)別是什么

    鴻蒙OS鴻蒙OS面向未來、面向全場景、分布式。在單設(shè)備系統(tǒng)能力基礎(chǔ)上,鴻蒙
    的頭像 發(fā)表于 12-24 12:40 ?5538次閱讀

    華為鴻蒙OS系統(tǒng)2.0有哪些優(yōu)勢?具備哪些功能?

    鴻蒙OS 2.0終于從傳聞走到了臺前,具備設(shè)備、服務(wù)流轉(zhuǎn)、極速直達(dá)、可視可說、隱私安全五大能力。
    的頭像 發(fā)表于 04-28 17:24 ?8147次閱讀

    什么是HarmonyOS“設(shè)備遷移”?

    什么是HarmonyOS“設(shè)備遷移”? HarmonyOS“設(shè)備遷移”是指將承載業(yè)務(wù)的Pag
    的頭像 發(fā)表于 06-25 17:32 ?5852次閱讀

    鴻蒙OS 分布式任務(wù)調(diào)度

    鴻蒙OS 分布式任務(wù)調(diào)度概述 在 HarmonyO S中,分布式任務(wù)調(diào)度平臺對搭載 HarmonyOS 的多設(shè)備構(gòu)筑的“超級虛擬終端”提供統(tǒng)一的組件管理能力,為應(yīng)用定義統(tǒng)一的能力基線、接口
    的頭像 發(fā)表于 01-29 16:50 ?918次閱讀

    鴻蒙OS和開源鴻蒙什么關(guān)系?

    開源鴻蒙(Open Harmony) 鴻蒙系統(tǒng)愿來的設(shè)計初衷,就是讓所有設(shè)備都可以運行一個系統(tǒng),但是每個設(shè)備的運算能力和功能都不同,所以內(nèi)核的設(shè)計上,采用了微內(nèi)核的設(shè)計,除了最基礎(chǔ)的功
    的頭像 發(fā)表于 01-30 15:44 ?1731次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b>和開源<b class='flag-5'>鴻蒙</b>什么關(guān)系?

    鴻蒙開發(fā):應(yīng)用組件設(shè)備交互(流轉(zhuǎn))【遷移

    遷移的核心任務(wù)是將應(yīng)用的當(dāng)前狀態(tài)(包括頁面控件、狀態(tài)變量等)無縫遷移到另一設(shè)備,從而在新設(shè)備上無縫接續(xù)應(yīng)用體驗。這意味著用戶在一臺
    的頭像 發(fā)表于 06-11 17:10 ?2047次閱讀
    <b class='flag-5'>鴻蒙</b>開發(fā):應(yīng)用組件<b class='flag-5'>跨</b><b class='flag-5'>設(shè)備</b>交互(流轉(zhuǎn))【<b class='flag-5'>跨</b>端<b class='flag-5'>遷移</b>】