女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

鴻蒙OS開發實例:【消息傳遞】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-03-29 17:48 ? 次閱讀

介紹

HarmonyOS中,參考官方指導,其實你會發現在‘指南’和‘API參考’兩個文檔中,對消息傳遞使用的技術不是一對一的關系,那么今天這篇文章帶你全面了解HarmonyOS 中的消息傳遞

概況

參照官方指導,我總結了兩部分:1. 官方“指南”,即下圖中的“Stage模型” 2. 總結的內容,即“消息事件”

開始

EventHub

這個其實是可以幫大家解決幾個最常見的消息傳遞場景:1. UIAbility和其它 2.頁面和其它 3. 組件和其它
指導文檔:[《鴻蒙NEXT星河版開發學習文檔》]

搜狗高速瀏覽器截圖20240326151450.png

1. 訂閱

或者+mau123789是v獲得相關文檔
this.context.eventHub.on('onConfigurationUpdate', (data) = > {
    //訂閱

});
復制

2. 發送

let eventhub = this.context.eventHub;
eventhub.emit('onConfigurationUpdate', config);
復制

3. 解除訂閱

this.context.eventHub.off('onConfigurationUpdate')
復制

CommonEvent

參照官方指南,其總稱簡寫為CES(全稱:Common Event Service),可以監聽系統鎖屏,時間變化,等等

1. 訂閱

usual.event.TIME_TICK : 系統公共事件

harvey.event.CUSTOM_1 : 自定義事件

let subscribeInfo = {
  events: ["usual.event.TIME_TICK", 'harvey.event.CUSTOM_1']
}

// 1. 創建訂閱者
commonEventManager.createSubscriber(subscribeInfo, (err, subscriber) = > {
  if (err) {
    console.error(`Failed to create subscriber. Code is ${err.code}, message is ${err.message}`);
    return;
  }
  console.info('Succeeded in creating subscriber.' + JSON.stringify(subscriber));

  this.subscriberID = subscriber

  // 2. 訂閱事件回調
  commonEventManager.subscribe(subscriber, (err, commonEventData) = > {
    if (err) {
      console.error(`Failed to subscribe common event. Code is ${err.code}, message is ${err.message}`);
      return;
    } else {
      systemDateTime.getCurrentTime(false, (error, data) = > {
        this.mySubscriberInfo = data + '<= >' + JSON.stringify(commonEventData, null, 't')
      })
    }
  })
})

2. 發送

對于系統級別的公共事件, 三方應用無權發送公共事件(即,即使你發送了,也是不會被收到的)

但是你可以自定義自己的公共事件

commonEventManager.publish('harvey.event.CUSTOM_1', option, (error) = > {
  console.log(JSON.stringify(error))
})

3. 解除訂閱

解除時用的是訂閱者ID

commonEventManager.unsubscribe(this.subscriberID);

Emitter

1. 訂閱

必須要有eventId, 這個代表消息的唯一標識

let innerEvent = {
  eventId: 1847
};

emitter.on(innerEvent, (eventData) = > {
   this.emitterData = process.tid + ' ' + JSON.stringify(eventData)
});

2. 發送

let eventData = {
  data: {
    'count': this.emitterCount++,
    'from': 'emitter',
    "content": "c",
    "id": 1,
  }};
let innerEvent = {
  eventId: 1847,
  priority: emitter.EventPriority.HIGH
};
emitter.emit(innerEvent, eventData);

3. 解除訂閱

emitter.off(1847)

Worker

1. 訂閱

import worker from '@ohos.worker';

let wk1 = new worker.ThreadWorker("/entry/ets/workers/Worker.ts")

wk1.onmessage = (msg) = > {

}

2. 發送

a)從worker線程中發送

import worker, { ThreadWorkerGlobalScope, MessageEvents, ErrorEvent } from '@ohos.worker';

var workerPort : ThreadWorkerGlobalScope = worker.workerPort;

workerPort.postMessage(
  {
    ......
  }
)

b) 從主線程中發送

wk1.dispatchEvent({type: 'message', timeStamp: 0})

3. 解除訂閱

//第一種
wk1.off('message')
//第二種
wk1.removeEventListener('message')
//第三種:強制關閉線程
wk1..terminate()

TaskTool 和 Notification

  • [TaskTools]
  • [Notification]

總結

HarmonyOS是一個新系統,還是要實踐才可能在真實的業務開發中靈活運用

審核編輯 黃宇

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

    關注

    59

    文章

    2491

    瀏覽量

    43734
  • HarmonyOS
    +關注

    關注

    79

    文章

    2026

    瀏覽量

    32061
  • 鴻蒙OS
    +關注

    關注

    0

    文章

    191

    瀏覽量

    4867
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    DevEco Studio AI輔助開發工具兩大升級功能 鴻蒙應用開發效率再提升

    隨著搭載HarmonyOS 5的Pura X發布,鴻蒙生態進入快車道,各應用正在加速適配開發,越來越多開發者加入到鴻蒙應用開發浪潮中。為提升
    發表于 04-18 14:43

    鴻蒙北向開發OpenHarmony5.0 DevEco Studio開發工具安裝與配置

    本文介紹OpenHarmony5.0 DevEco Studio開發工具安裝與配置,鴻蒙北向開發入門必備!由觸覺智能Purple Pi OH鴻蒙開發
    的頭像 發表于 03-28 18:05 ?514次閱讀
    <b class='flag-5'>鴻蒙</b>北向<b class='flag-5'>開發</b>OpenHarmony5.0 DevEco Studio<b class='flag-5'>開發</b>工具安裝與配置

    【「極速探索HarmonyOS NEXT 」閱讀體驗】 初印象:一本純血鴻蒙應用開發入門的好書

    ,通用文字識別,華為支付服務,地圖服務。介紹了這些概念和實例。這些都是我們在開發應用常用到的服務,篇章的介紹非常實用,使開發應用中可以少走不少彎路。 最后一個大篇章,是鴻蒙特色案例的介
    發表于 03-04 12:41

    HarmonyOS 應用開發賦能套件:鴻蒙原生應用開發的 “神助攻”

    隨著鴻蒙生態的快速發展,越來越多的開發者投身于鴻蒙原生應用的開發中。然而,在學習鴻蒙原生應用開發
    發表于 02-17 16:37

    鴻蒙北向開發OpenHarmony4.1 DevEco Studio開發工具安裝與配置

    OpenHarmony4.1 DevEco Studio開發工具安裝與配置,鴻蒙北向開發入門必備!
    的頭像 發表于 02-07 17:35 ?573次閱讀
    <b class='flag-5'>鴻蒙</b>北向<b class='flag-5'>開發</b>OpenHarmony4.1 DevEco Studio<b class='flag-5'>開發</b>工具安裝與配置

    OpenHarmony源碼編譯后燒錄鏡像教程,RK3566鴻蒙開發板演示

    本文介紹瑞芯微主板/開發板編譯OpenHarmony源碼后燒錄鏡像的教程,觸覺智能Purple Pi OH鴻蒙開發板演示。搭載了瑞芯微RK3566四核處理器,樹莓派卡片電腦設計,支持開源鴻蒙
    的頭像 發表于 12-30 10:08 ?594次閱讀
    OpenHarmony源碼編譯后燒錄鏡像教程,RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>板演示

    OpenHarmony怎么修改DPI密度值?觸覺智能RK3566鴻蒙開發板演示

    開源鴻蒙OpenHarmony系統下,修改DPI密度值的方法,觸覺智能Purple Pi OH鴻蒙開發板演示,搭載了瑞芯微RK3566四核處理器,Laval鴻蒙社區推薦
    的頭像 發表于 12-24 11:46 ?554次閱讀
    OpenHarmony怎么修改DPI密度值?觸覺智能RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>板演示

    鴻蒙機器人與鴻蒙開發板聯動演示

    鴻蒙機器人與鴻蒙開發板聯動演示,機器人的角色為迎賓機器人,開發板負責人賓客出現監聽
    發表于 12-02 14:55

    如何在開源鴻蒙OpenHarmony開啟SELinux模式?RK3566鴻蒙開發板演示

    本文介紹開源鴻蒙OpenHarmony系統下,開啟/關閉SELinux權限的方法,觸覺智能Purple Pi OH鴻蒙開發板演示,已適配全新OpenHarmony5.0 Release系統!
    的頭像 發表于 11-18 19:03 ?690次閱讀
    如何在開源<b class='flag-5'>鴻蒙</b>OpenHarmony開啟SELinux模式?RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>板演示

    鴻蒙Flutter實戰:07混合開發

    # 鴻蒙Flutter實戰:混合開發 鴻蒙Flutter混合開發主要有兩種形式。 ## 1.基于har 將flutter module打包成har包,在原生
    發表于 10-23 16:00

    華為原生鴻蒙之夜官宣1024程序員節彩蛋:與鴻蒙開發者共碼未來

    ,截至當前已有1.1億+代碼行,中國市場份額第二,品牌認知度和開發者數量大幅增長,已有15000+鴻蒙原生應用和元服務上架,有的原生應用迭代幾乎達到一天一個版本的速度。鴻蒙生態設備超過10億,迎來
    的頭像 發表于 10-23 15:01 ?409次閱讀
    華為原生<b class='flag-5'>鴻蒙</b>之夜官宣1024程序員節彩蛋:與<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>者共碼未來

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

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

    華為發布鴻蒙原生智能,OS深度融合AI,小藝升級為系統級智能體

    6月21日,華為開發者大會(HDC 2024)于東莞松山湖舉行,會上,華為發布鴻蒙原生智能(Harmony Intelligence),并宣布HarmonyOS NEXT面向開發者和先鋒用戶開放
    的頭像 發表于 06-24 14:30 ?994次閱讀
    華為發布<b class='flag-5'>鴻蒙</b>原生智能,<b class='flag-5'>OS</b>深度融合AI,小藝升級為系統級智能體

    HDC2024華為發布鴻蒙原生智能:AI與OS深度融合,開啟全新的AI時代

    6月21日,華為開發者大會2024(HDC.2024)召開。 HarmonyOS NEXT將AI與OS深度融合,構筑全新鴻蒙原生智能框架。大會現場,華為常務董事、終端BG董事長、智能汽車解決方案BU
    的頭像 發表于 06-24 09:28 ?1035次閱讀
    HDC2024華為發布<b class='flag-5'>鴻蒙</b>原生智能:AI與<b class='flag-5'>OS</b>深度融合,開啟全新的AI時代

    鴻蒙開發:信息傳遞載體Want

    其中,一種常見的使用場景是作為[`startAbility()`]方法的參數。例如,當UIAbilityA需要啟動UIAbilityB并向UIAbilityB傳遞一些數據時,可以使用Want作為一個載體,將數據傳遞給UIAbilityB。
    的頭像 發表于 06-21 15:14 ?740次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>:信息<b class='flag-5'>傳遞</b>載體Want