国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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是一個新系統,還是要實踐才可能在真實的業務開發中靈活運用

審核編輯 黃宇

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

    關注

    60

    文章

    2963

    瀏覽量

    45883
  • HarmonyOS
    +關注

    關注

    80

    文章

    2153

    瀏覽量

    36045
  • 鴻蒙OS
    +關注

    關注

    0

    文章

    193

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    想體驗鴻蒙生態,該怎么獲取鴻蒙開發板?有哪些途徑?

    如何快速上手體驗鴻蒙生態? 想體驗鴻蒙生態,該怎么獲取鴻蒙開發板?有哪些途徑?
    發表于 11-29 08:40

    如何申請鴻蒙開發板?想體驗鴻蒙生態。

    如何申請鴻蒙開發板?想體驗鴻蒙生態。
    發表于 11-29 08:34

    【匯思博SEEK100開發板試用體驗】在開發鴻蒙OS搭建QT開發環境

    功能或者網絡通信失敗等,檢查代碼中對相關功能的實現邏輯,是否正確調用了鴻蒙系統提供的 API 以及 Qt 的相關模塊。例如,在調用開發板攝像頭功能時,檢查是否獲取到了正確的攝像頭設備實例,并且是否按照規范進行了設備的初始化和操作
    發表于 08-24 18:34

    【HarmonyOS 5】金融應用開發鴻蒙組件實踐

    【HarmonyOS 5】金融應用開發鴻蒙組件實踐 ##鴻蒙開發能力 ##HarmonyOS SDK應用服務##鴻蒙金融類應用 (金融理財#
    的頭像 發表于 07-11 18:20 ?959次閱讀
    【HarmonyOS 5】金融應用<b class='flag-5'>開發</b><b class='flag-5'>鴻蒙</b>組件實踐

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

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

    鴻蒙5開發寶藏案例分享---一多開發實例(音樂)

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

    鴻蒙5開發寶藏案例分享---跨線程性能優化指南

    ;>Worker</span>做多線程開發時,總遇到對象跨線程卡頓的問題,原來鴻蒙早就提供了解決方案。下面結合代碼和實戰案例,帶你徹底玩轉性能優化! 一、痛點:跨線程
    發表于 06-12 17:13

    鴻蒙5開發寶藏案例分享---一多開發實例(游戲)

    ?【開發者必看】鴻蒙隱藏寶箱大公開!這些實戰案例讓你的開發效率翻倍! 哈嘍各位開發者小伙伴!今天要和大家分享一個讓我拍大腿的發現——原來鴻蒙
    發表于 06-03 18:22

    鴻蒙5開發案例分享揭秘---一多開發實例(商務辦公)

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

    鴻蒙5開發寶藏案例分享---一多開發實例(地圖導航)

    案例!最近在肝鴻蒙項目時意外發現了這個地圖導航的\"一多\"開發實例,簡直像發現新大陸!這就帶大家沉浸式體驗這個超實用的開發模板~ ? 先劃重點:這個案例完美演示了如何用一套代碼搞定
    發表于 06-03 16:17

    鴻蒙5開發寶藏案例分享---一多開發實例(旅行訂票)

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

    鴻蒙5開發寶藏案例分享---一多開發實例(購物比價)

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

    鴻蒙5開發寶藏案例分享---一多開發實例(社區評論)

    應用” 的一多開發實例,看完直呼“原來還能這樣玩?!” ? 必須整理出來和大家嘮嘮,順便帶大家手把手拆解幾個核心案例! ?** 一多開發是啥?一句話總結:** 一次開發,自動適配手機、
    發表于 06-03 16:03

    鴻蒙5開發寶藏案例分享---一多開發實例(長視頻)

    【?鴻蒙開發寶藏案例大起底!原來官方藏了這么多干貨!】 大家好呀~最近在折騰鴻蒙應用開發的時候,意外發現了官方文檔里藏著一堆超實用的開發案例
    發表于 06-03 15:58

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

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