chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

鴻蒙OS開(kāi)發(fā)實(shí)例:【消息傳遞】

jf_46214456 ? 來(lái)源:jf_46214456 ? 作者:jf_46214456 ? 2024-03-29 17:48 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

介紹

HarmonyOS中,參考官方指導(dǎo),其實(shí)你會(huì)發(fā)現(xiàn)在‘指南’和‘API參考’兩個(gè)文檔中,對(duì)消息傳遞使用的技術(shù)不是一對(duì)一的關(guān)系,那么今天這篇文章帶你全面了解HarmonyOS 中的消息傳遞

概況

參照官方指導(dǎo),我總結(jié)了兩部分:1. 官方“指南”,即下圖中的“Stage模型” 2. 總結(jié)的內(nèi)容,即“消息事件”

開(kāi)始

EventHub

這個(gè)其實(shí)是可以幫大家解決幾個(gè)最常見(jiàn)的消息傳遞場(chǎng)景:1. UIAbility和其它 2.頁(yè)面和其它 3. 組件和其它
指導(dǎo)文檔:[《鴻蒙NEXT星河版開(kāi)發(fā)學(xué)習(xí)文檔》]

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

1. 訂閱

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

});
復(fù)制

2. 發(fā)送

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

3. 解除訂閱

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

CommonEvent

參照官方指南,其總稱(chēng)簡(jiǎn)寫(xiě)為CES(全稱(chēng):Common Event Service),可以監(jiān)聽(tīng)系統(tǒng)鎖屏,時(shí)間變化,等等

1. 訂閱

usual.event.TIME_TICK : 系統(tǒng)公共事件

harvey.event.CUSTOM_1 : 自定義事件

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

// 1. 創(chuàng)建訂閱者
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. 訂閱事件回調(diào)
  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. 發(fā)送

對(duì)于系統(tǒng)級(jí)別的公共事件, 三方應(yīng)用無(wú)權(quán)發(fā)送公共事件(即,即使你發(fā)送了,也是不會(huì)被收到的)

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

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

3. 解除訂閱

解除時(shí)用的是訂閱者ID

commonEventManager.unsubscribe(this.subscriberID);

Emitter

1. 訂閱

必須要有eventId, 這個(gè)代表消息的唯一標(biāo)識(shí)

let innerEvent = {
  eventId: 1847
};

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

2. 發(fā)送

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. 發(fā)送

a)從worker線(xiàn)程中發(fā)送

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

var workerPort : ThreadWorkerGlobalScope = worker.workerPort;

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

b) 從主線(xiàn)程中發(fā)送

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

3. 解除訂閱

//第一種
wk1.off('message')
//第二種
wk1.removeEventListener('message')
//第三種:強(qiáng)制關(guān)閉線(xiàn)程
wk1..terminate()

TaskTool 和 Notification

  • [TaskTools]
  • [Notification]

總結(jié)

HarmonyOS是一個(gè)新系統(tǒng),還是要實(shí)踐才可能在真實(shí)的業(yè)務(wù)開(kāi)發(fā)中靈活運(yùn)用

審核編輯 黃宇

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

    關(guān)注

    60

    文章

    2618

    瀏覽量

    44041
  • HarmonyOS
    +關(guān)注

    關(guān)注

    80

    文章

    2126

    瀏覽量

    33019
  • 鴻蒙OS
    +關(guān)注

    關(guān)注

    0

    文章

    191

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    【HarmonyOS 5】金融應(yīng)用開(kāi)發(fā)鴻蒙組件實(shí)踐

    【HarmonyOS 5】金融應(yīng)用開(kāi)發(fā)鴻蒙組件實(shí)踐 ##鴻蒙開(kāi)發(fā)能力 ##HarmonyOS SDK應(yīng)用服務(wù)##鴻蒙金融類(lèi)應(yīng)用 (金融理財(cái)#
    的頭像 發(fā)表于 07-11 18:20 ?280次閱讀
    【HarmonyOS 5】金融應(yīng)用<b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>鴻蒙</b>組件實(shí)踐

    【HarmonyOS 5】鴻蒙中的UIAbility詳解(二)

    【HarmonyOS 5】鴻蒙中的UIAbility詳解(二) ##鴻蒙開(kāi)發(fā)能力 ##HarmonyOS SDK應(yīng)用服務(wù)##鴻蒙金融類(lèi)應(yīng)用 (金融理財(cái)# 一、前言 今天我們繼續(xù)深入講解
    的頭像 發(fā)表于 07-11 18:17 ?250次閱讀
    【HarmonyOS 5】<b class='flag-5'>鴻蒙</b>中的UIAbility詳解(二)

    鴻蒙5開(kāi)發(fā)寶藏案例分享---一多開(kāi)發(fā)實(shí)例(音樂(lè))

    各位開(kāi)發(fā)者小伙伴們好呀!今天咱們來(lái)點(diǎn)硬核干貨!最近在鴻蒙文檔中心挖到一座“金礦”——官方竟然暗藏了100+實(shí)戰(zhàn)案例,從分布式架構(gòu)到交互動(dòng)效優(yōu)化應(yīng)有盡有!這些案例不僅藏著華為工程師的私房技巧,還直接
    的頭像 發(fā)表于 06-30 11:54 ?335次閱讀

    鴻蒙5開(kāi)發(fā)寶藏案例分享---跨線(xiàn)程性能優(yōu)化指南

    ;>Worker</span>做多線(xiàn)程開(kāi)發(fā)時(shí),總遇到對(duì)象跨線(xiàn)程卡頓的問(wèn)題,原來(lái)鴻蒙早就提供了解決方案。下面結(jié)合代碼和實(shí)戰(zhàn)案例,帶你徹底玩轉(zhuǎn)性能優(yōu)化! 一、痛點(diǎn):跨線(xiàn)程
    發(fā)表于 06-12 17:13

    鴻蒙5開(kāi)發(fā)寶藏案例分享---一多開(kāi)發(fā)實(shí)例(游戲)

    ?【開(kāi)發(fā)者必看】鴻蒙隱藏寶箱大公開(kāi)!這些實(shí)戰(zhàn)案例讓你的開(kāi)發(fā)效率翻倍! 哈嘍各位開(kāi)發(fā)者小伙伴!今天要和大家分享一個(gè)讓我拍大腿的發(fā)現(xiàn)——原來(lái)鴻蒙
    發(fā)表于 06-03 18:22

    鴻蒙5開(kāi)發(fā)案例分享揭秘---一多開(kāi)發(fā)實(shí)例(商務(wù)辦公)

    ?【鴻蒙開(kāi)發(fā)寶藏案例大揭秘】原來(lái)官方文檔里藏了這么多好東西! 大家好呀~最近在肝鴻蒙項(xiàng)目時(shí)意外扒出了官方文檔里的\"藏寶庫(kù)\"!原來(lái)那些讓人頭禿的跨端適配難題,官方早就準(zhǔn)備好
    發(fā)表于 06-03 16:24

    鴻蒙5開(kāi)發(fā)寶藏案例分享---一多開(kāi)發(fā)實(shí)例(地圖導(dǎo)航)

    案例!最近在肝鴻蒙項(xiàng)目時(shí)意外發(fā)現(xiàn)了這個(gè)地圖導(dǎo)航的\"一多\"開(kāi)發(fā)實(shí)例,簡(jiǎn)直像發(fā)現(xiàn)新大陸!這就帶大家沉浸式體驗(yàn)這個(gè)超實(shí)用的開(kāi)發(fā)模板~ ? 先劃重點(diǎn):這個(gè)案例完美演示了如何用一套代碼搞定
    發(fā)表于 06-03 16:17

    鴻蒙5開(kāi)發(fā)寶藏案例分享---一多開(kāi)發(fā)實(shí)例(旅行訂票)

    ? 鴻蒙開(kāi)發(fā)寶藏大發(fā)現(xiàn)!一多開(kāi)發(fā)實(shí)戰(zhàn)案例解析(旅行訂票篇) 大家好!今天在翻鴻蒙開(kāi)發(fā)者文檔時(shí),意外發(fā)現(xiàn)了官方藏著一整片\"案例綠洲\"!尤其
    發(fā)表于 06-03 16:16

    鴻蒙5開(kāi)發(fā)寶藏案例分享---一多開(kāi)發(fā)實(shí)例(購(gòu)物比價(jià))

    鴻蒙開(kāi)發(fā)寶藏案例大公開(kāi)!】手把手教你用\"一多\"能力打造跨端購(gòu)物比價(jià)App 小伙伴們好呀!今天要和大家分享一個(gè)鴻蒙開(kāi)發(fā)的隱藏寶典——官方購(gòu)物比價(jià)應(yīng)用
    發(fā)表于 06-03 16:07

    鴻蒙5開(kāi)發(fā)寶藏案例分享---一多開(kāi)發(fā)實(shí)例(社區(qū)評(píng)論)

    應(yīng)用” 的一多開(kāi)發(fā)實(shí)例,看完直呼“原來(lái)還能這樣玩?!” ? 必須整理出來(lái)和大家嘮嘮,順便帶大家手把手拆解幾個(gè)核心案例! ?** 一多開(kāi)發(fā)是啥?一句話(huà)總結(jié):** 一次開(kāi)發(fā),自動(dòng)適配手機(jī)、
    發(fā)表于 06-03 16:03

    鴻蒙5開(kāi)發(fā)寶藏案例分享---一多開(kāi)發(fā)實(shí)例(長(zhǎng)視頻)

    【?鴻蒙開(kāi)發(fā)寶藏案例大起底!原來(lái)官方藏了這么多干貨!】 大家好呀~最近在折騰鴻蒙應(yīng)用開(kāi)發(fā)的時(shí)候,意外發(fā)現(xiàn)了官方文檔里藏著一堆超實(shí)用的開(kāi)發(fā)案例
    發(fā)表于 06-03 15:58

    鴻蒙北向開(kāi)發(fā)OpenHarmony5.0 DevEco Studio開(kāi)發(fā)工具安裝與配置

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

    HarmonyOS 應(yīng)用開(kāi)發(fā)賦能套件:鴻蒙原生應(yīng)用開(kāi)發(fā)的 “神助攻”

    隨著鴻蒙生態(tài)的快速發(fā)展,越來(lái)越多的開(kāi)發(fā)者投身于鴻蒙原生應(yīng)用的開(kāi)發(fā)中。然而,在學(xué)習(xí)鴻蒙原生應(yīng)用開(kāi)發(fā)
    發(fā)表于 02-17 16:37

    鴻蒙機(jī)器人與鴻蒙開(kāi)發(fā)板聯(lián)動(dòng)演示

    鴻蒙機(jī)器人與鴻蒙開(kāi)發(fā)板聯(lián)動(dòng)演示,機(jī)器人的角色為迎賓機(jī)器人,開(kāi)發(fā)板負(fù)責(zé)人賓客出現(xiàn)監(jiān)聽(tīng)
    發(fā)表于 12-02 14:55

    鴻蒙Flutter實(shí)戰(zhàn):07混合開(kāi)發(fā)

    # 鴻蒙Flutter實(shí)戰(zhàn):混合開(kāi)發(fā) 鴻蒙Flutter混合開(kāi)發(fā)主要有兩種形式。 ## 1.基于har 將flutter module打包成har包,在原生
    發(fā)表于 10-23 16:00