在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

HarmonyOS 學習路之開發篇 ——Intent

王程 ? 來源:jf_75796907 ? 作者:jf_75796907 ? 2024-02-20 14:52 ? 次閱讀

Intent

基本概念

Intent 是對象之間傳遞信息的載體。例如,當一個 Ability 需要啟動另一個 Ability 時,或者一個 AbilitySlice 需要導航到另一個 AbilitySlice 時,可以通過 Intent 指定啟動的目標同時攜帶相關數據。Intent 的構成元素包括 Operation 與 Parameters,具體描述參見表 1。

wKgaomXUS_6AdNTpAADjbc4OoZM532.png


表 1 Intent 的構成元素 當 Intent 用于發起請求時,根據指定元素的不同,分為兩種類型:

如果同時指定了 BundleName 與 AbilityName,則根據 Ability 的全稱(例如 “com.demoapp.FooAbility”)來直接啟動應用。

如果未同時指定 BundleName 和 AbilityName,則根據 Operation 中的其他屬性來啟動應用。

說明 Intent 設置屬性時,必須先使用 Operation 來設置屬性。如果需要新增或修改屬性,必須在設置 Operation
后再執行操作。

關于 Intent 最簡單的使用方法,可參見快速入門的示例代碼。其中 “實現頁面跳轉” 重點描述了使用 Intent 實現兩個頁面跳轉關系的操作。

根據 Ability 的全稱啟動應用

通過構造包含 BundleName 與 AbilityName 的 Operation 對象,可以啟動一個 Ability、并導航到該 Ability。示例代碼如下:

Intent intent = new Intent();
// 通過Intent中的OperationBuilder類構造operation對象,指定設備標識(空串表示當前設備)、應用包名、Ability名稱
Operation operation = new Intent.OperationBuilder()
        .withDeviceId("")
        .withBundleName("com.demoapp")
        .withAbilityName("com.demoapp.FooAbility")
        .build();
// 把operation設置到intent中
intent.setOperation(operation);
startAbility(intent);

作為處理請求的對象,會在相應的回調方法中接收請求方傳遞的 Intent 對象。以導航到另一個 Ability 為例,導航的目標 Ability 可以在其 onStart () 回調的參數中獲得 Intent 對象。 根據 Operation 的其他屬性啟動應用 有些場景下,開發者需要在應用中使用其他應用提供的某種能力,而不感知提供該能力的具體是哪一個應用。例如開發者需要通過瀏覽器打開一個鏈接,而不關心用戶最終選擇哪一個瀏覽器應用,則可以通過 Operation 的其他屬性(除 BundleName 與 AbilityName 之外的屬性)描述需要的能力。如果設備上存在多個應用提供同種能力,系統則彈出候選列表,由用戶選擇由哪個應用處理請求。以下示例展示使用 Intent 跨 Ability 查詢天氣信息。

請求方

在 Ability 中構造 Intent 以及包含 Action 的 Operation 對象,并調用 startAbilityForResult () 方法發起請求。然后重寫 onAbilityResult () 回調方法,對請求結果進行處理。

private void queryWeather() {
    Intent intent = new Intent();
    Operation operation = new Intent.OperationBuilder()
            .withAction(Intent.ACTION_QUERY_WEATHER)
            .build();
    intent.setOperation(operation);
    startAbilityForResult(intent, REQ_CODE_QUERY_WEATHER);
}
@Override
protected void onAbilityResult(int requestCode, int resultCode, Intent resultData) {
    switch (requestCode) {
        case REQ_CODE_QUERY_WEATHER:
            // Do something with result.
            ...
            return;
        default:
            ...
    }
}

處理方 1、作為處理請求的對象,首先需要在配置文件中聲明對外提供的能力,以便系統據此找到自身并作為候選的請求處理者。

{
    "module": {
        ...
        "abilities": [
            {
                ...
                "skills":[
                    {
                        "actions":[
                            "ability.intent.QUERY_WEATHER"
                        ]
                    }
                ]
                ...
            }
        ]
        ...
    }
    ...
}

2、在 Ability 中配置路由以便支持以此 action 導航到對應的 AbilitySlice。

@Override
protected void onStart(Intent intent) {
    ...
    addActionRoute(Intent.ACTION_QUERY_WEATHER, DemoSlice.class.getName());
    ...
}

3、在 Ability 中處理請求,并調用 setResult () 方法暫存返回結果。

@Override
protected void onActive() {
    ...
    Intent resultIntent = new Intent();
    setResult(0, resultIntent);   //0為當前Ability銷毀后返回的resultCode。
    ...
}

審核編輯 黃宇


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • HarmonyOS
    +關注

    關注

    79

    文章

    1983

    瀏覽量

    30631
收藏 人收藏

    評論

    相關推薦

    【書籍評測活動NO.56】極速探索HarmonyOS NEXT:純血鴻蒙應用開發實踐

    了解并掌握鴻蒙開發的核心技術,以及鴻蒙應用在實際開發中的應用方法。 本書共分為四,共計16章,分別為鴻蒙開發基礎、鴻蒙
    發表于 01-20 16:53

    HarmonyOS第一課》煥新升級,賦能開發者快速掌握鴻蒙應用開發

    HarmonyOS第一課》煥新升級,賦能開發者快速掌握鴻蒙應用開發 隨著HarmonyOS NEXT發布,鴻蒙生態日益壯大,廣大開發者對于
    發表于 01-02 14:24

    HarmonyOS開發指導類文檔更新速遞(下)

    伴隨著HarmonyOS 5.0.0 Release、HarmonyOS 5.0.1 Release版本的發布,HarmonyOS官網文檔也帶來了不少上新內容。本期HarmonyOS
    的頭像 發表于 12-30 09:54 ?268次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發</b>指導類文檔更新速遞(下)

    HarmonyOS開發指導類文檔更新速遞(上)

    伴隨著HarmonyOS 5.0.0 Release版本的發布,HarmonyOS官網文檔也帶來了不少上新內容。本期HarmonyOS NEXT開發者資料直通車將從文檔更新角度為
    的頭像 發表于 12-30 09:50 ?207次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發</b>指導類文檔更新速遞(上)

    HarmonyOS開發寶典震撼來襲,卓越應用開發之旅一觸即發,輕松啟程!

    HarmonyOS賦能產品,全面護航開發者從HarmonyOS感知、學習進階、開發實踐至技術支持的全旅程,助力
    發表于 12-05 08:57

    HarmonyOS NEXT應用元服務開發Intents Kit(意圖框架服務)習慣推薦方案概述

    一、習慣推薦是HarmonyOS學習用戶的行為習慣后做出的主動預測推薦。 1.開發者將用戶在應用/元服務內的使用行為向HarmonyOS共享,使得H
    發表于 11-19 17:59

    AWTK 最新動態:支持鴻蒙系統(HarmonyOS Next)

    導讀HarmonyOS是全球第三大移動操作系統,有巨大的市場潛力,在國產替代的背景下,機會多多,AWTK支持HarmonyOS,讓AWTK開發者也能享受HarmonyOS生態的紅利。A
    的頭像 發表于 11-06 08:03 ?355次閱讀
    AWTK 最新動態:支持鴻蒙系統(<b class='flag-5'>HarmonyOS</b> Next)

    北京迅為RK3568開發板嵌入式學習Linux驅動全新更新-CAN+

    北京迅為RK3568開發板嵌入式學習Linux驅動全新更新-CAN+
    的頭像 發表于 09-04 15:29 ?634次閱讀
    北京迅為RK3568<b class='flag-5'>開發</b>板嵌入式<b class='flag-5'>學習</b><b class='flag-5'>之</b>Linux驅動全新更新-CAN+

    慶科信息獲HarmonyOS高級應用開發能力認證!助力品牌快速打造鴻蒙原生應用

    近日,上海慶科信息技術有限公司榮獲HarmonyOS應用開發者高級認證,公司在華為鴻蒙生態的開發能力得到進一步拓展,能夠幫助客戶快速開發基于Harm
    的頭像 發表于 07-17 13:24 ?663次閱讀
    慶科信息獲<b class='flag-5'>HarmonyOS</b>高級應用<b class='flag-5'>開發</b>能力認證!助力品牌快速打造鴻蒙原生應用

    HarmonyOS開發案例:【轉場動畫】

    在本教程中,我們將會通過一個簡單的樣例,學習如何基于ArkTS的聲明式開發范式開發轉場動畫。其中包含頁面間轉場、組件內轉場以及共享元素轉場。
    的頭像 發表于 05-06 15:42 ?1146次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發</b>案例:【轉場動畫】

    HarmonyOS開發案例:【首選項】

    基于HarmonyOS的首選項能力實現的一個簡單示例。
    的頭像 發表于 04-19 16:20 ?1329次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發</b>案例:【首選項】

    潤開鴻獲鴻蒙先鋒授牌,榮膺華為HarmonyOS開發服務商

    3月27日,華為HDD行業沙龍在北京舉辦,本次活動由HarmonyOS產品專家帶來了精彩的議題分享,涵蓋HarmonyOS操作系統介紹、HarmonyOS應用特性分享、意圖框架介紹、行業解決方案應用、
    的頭像 發表于 03-29 10:33 ?734次閱讀
    潤開鴻獲鴻蒙先鋒授牌,榮膺華為<b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發</b>服務商

    潤開鴻榮膺華為HarmonyOS開發服務商

    近日,華為HDD行業沙龍在北京隆重舉行。在這場盛會上,HarmonyOS產品專家發表了引人入勝的議題分享,內容廣泛而深入,包括HarmonyOS操作系統的全面介紹、應用特性的獨到解析、意圖框架的細致闡述,以及行業解決方案的生動應用和開發
    的頭像 發表于 03-29 09:47 ?746次閱讀

    拓維信息及旗下開鴻智谷同獲華為HarmonyOS開發服務商認證

    近日,拓維信息及旗下開鴻智谷雙雙通過華為HarmonyOS開發服務商認證,成為華為“鴻蒙服務商先鋒計劃”認證級伙伴。秉持共同發展、共創價值的合作理念,拓維信息、開鴻智谷將攜手華為打造
    的頭像 發表于 03-29 08:13 ?565次閱讀
    拓維信息及旗下開鴻智谷同獲華為<b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發</b>服務商認證

    HarmonyOS開發技術全面分析

    的快速連接、能力互助、資源共享,匹配合適的設備、提供流暢的全場景體驗。 ? 對應用開發者而言, HarmonyOS 采用了多種分布式技術,使得應用程序的開發實現與不同終端設備的形態差異無關,降低了
    發表于 02-21 16:31
    主站蜘蛛池模板: 午夜激情福利网 | 国模人体一区二区三区 | 爱我免费视频观看在线www | 中文字幕亚洲一区二区v@在线 | 久久美女精品国产精品亚洲 | 三级在线播放 | 2020天天操 | 国产偷啪视频一区 | 欧美天天综合 | 求av网站 | 四虎一区二区三区精品 | 天堂最新版资源www在线 | 国产v69| 日韩三级久久 | 国产精品福利视频手机免费观看 | 欧美色欧美亚洲高清在线观看 | 狠狠摸狠狠操 | 俺去在线 | 色婷婷成人| 亚洲国产午夜精品理论片的软件 | 午夜在线影院 | 99久久精品99999久久 | 天天做.天天爱.天天综合网 | 夜夜操网站 | 年轻人影院www你懂的 | 天天干夜夜骑 | 欧美一级黄色片在线观看 | 日本高清视频wwww色 | 在线观看中文字幕第一页 | 中文字幕在线观看一区 | 午夜高清免费观看视频 | 91最新网站免费 | 亚洲高清一区二区三区四区 | 天天综合天天射 | 色综合社区 | 爱看精品福利视频观看 | 永久免费精品视频 | 一级特黄特黄xxx视频 | 国产三级在线免费观看 | 色偷偷成人网免费视频男人的天堂 | 日本黄页网 |