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

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

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

鴻蒙開發(fā)之EventHub

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

EventHub模塊提供了事件中心,提供訂閱、取消訂閱、觸發(fā)事件的能力。

NOTE
本模塊首批接口從API version 9開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨標(biāo)記接口的起始版本。

本模塊接口僅可在Stage模型下使用。

使用說明

在使用eventHub的功能前,需要通過Ability實例的成員變量context獲取。

import Ability from '@ohos.app.ability.UIAbility';
export default class MainAbility extends Ability {
    func1(){
        console.log('func1 is called');
    }
    onForeground() {
        this.context.eventHub.on('123', this.func1);
    }
}

EventHub.on

on(event: string, callback: Function): void;

訂閱指定事件。

系統(tǒng)能力:SystemCapability.Ability.AbilityRuntime.Core

參數(shù)

wKgZomXVmMKAQfJdAABOX-HIl_0501.png


示例:

import Ability from '@ohos.app.ability.UIAbility';

export default class MainAbility extends Ability {
    onForeground() {
        this.context.eventHub.on('123', this.func1);
        this.context.eventHub.on('123', () => {
            console.log('call anonymous func 1');
        });
        // 結(jié)果:
        // func1 is called
        // call anonymous func 1
        this.context.eventHub.emit('123'); 
    }
    func1() {
        console.log('func1 is called');
    }
}

EventHub.off

off(event: string, callback?: Function): void;

取消訂閱指定事件。當(dāng)callback傳值時,取消訂閱指定的callback;未傳值時,取消訂閱該事件下所有callback。

系統(tǒng)能力:SystemCapability.Ability.AbilityRuntime.Core

參數(shù):

wKgaomXVmMqAanYCAABgKfU7jV8532.png


示例:

import Ability from '@ohos.app.ability.UIAbility';

export default class MainAbility extends Ability {
    onForeground() {
        this.context.eventHub.on('123', this.func1);
        this.context.eventHub.off('123', this.func1); //取消訂閱func1
        this.context.eventHub.on('123', this.func1);
        this.context.eventHub.on('123', this.func2);
        this.context.eventHub.off('123');  //取消訂閱func1和func2
    }
    func1() {
        console.log('func1 is called');
    }
    func2() {
        console.log('func2 is called');
    }
}

EventHub.emit

emit(event: string, …args: Object[]): void;

觸發(fā)指定事件。

系統(tǒng)能力:SystemCapability.Ability.AbilityRuntime.Core

參數(shù):

wKgZomXVmNGAL1pcAABpIeJSjrQ994.png

示例:

import Ability from '@ohos.app.ability.UIAbility';

export default class MainAbility extends Ability {
    onForeground() {
        this.context.eventHub.on('123', this.func1);
        // 結(jié)果:
        // func1 is called,undefined,undefined
        this.context.eventHub.emit('123');
        // 結(jié)果:
        // func1 is called,1,undefined
        this.context.eventHub.emit('123', 1);
        // 結(jié)果:
        // func1 is called,1,2
        this.context.eventHub.emit('123', 1, 2);
    }
    func1(a, b) {
        console.log('func1 is called,' + a + ',' + b);
    }
}

審核編輯 黃宇


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

    關(guān)注

    56

    文章

    2267

    瀏覽量

    42489
收藏 人收藏

    評論

    相關(guān)推薦

    鴻蒙開發(fā)接口公共事件與通知:【application/EventHub (EventHub)】

    EventHub模塊提供了事件中心,提供訂閱、取消訂閱、觸發(fā)事件的能力。
    的頭像 發(fā)表于 05-25 16:31 ?578次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>接口公共事件與通知:【application/<b class='flag-5'>EventHub</b> (<b class='flag-5'>EventHub</b>)】

    鴻蒙設(shè)備學(xué)習(xí)菜鳥指南》 【索引及PDF和工具分享】

    本帖最后由 HonestQiao 于 2020-11-3 14:29 編輯 《鴻蒙設(shè)備學(xué)習(xí)菜鳥指南》 【目錄索引】本帖為索引貼,各節(jié)的內(nèi)容,將逐步發(fā)布。本菜鳥指南的寫作目的,是為了讓新上手
    發(fā)表于 10-30 13:14

    鴻蒙設(shè)備學(xué)習(xí)菜鳥指南》 【五、搭建開發(fā)環(huán)境】

    ` 本帖最后由 HonestQiao 于 2020-10-30 14:00 編輯 《鴻蒙設(shè)備學(xué)習(xí)菜鳥指南》 【五、搭建開發(fā)環(huán)境】[目錄索引]五、搭建開發(fā)環(huán)境 我們首先使用最簡化的
    發(fā)表于 10-30 13:59

    鴻蒙設(shè)備學(xué)習(xí)菜鳥指南》【七、開發(fā)

    鴻蒙設(shè)備學(xué)習(xí)菜鳥指南》【七、開發(fā)】[目錄索引]七、開發(fā)開發(fā)部分,我們在這里面,就不詳細講了,大家可以根據(jù)官方文章來操作。當(dāng)我們使用最簡化
    發(fā)表于 11-01 11:41

    【HarmonyOS HiSpark AI Camera試用連載 】初遇鴻蒙系統(tǒng)—6.基于HarmonyOS鴻蒙—北向HAP應(yīng)用開發(fā)2048小游戲

    基于HarmonyOS鴻蒙——北向HAP應(yīng)用開發(fā)2048小游戲玩法:基本玩法定時1分鐘 刷分模式..........(待開發(fā))HAP包: 大家自取去玩吧哈哈??!后續(xù)還會添加一些新功能
    發(fā)表于 12-09 05:06

    鴻蒙原生應(yīng)用/元服務(wù)開發(fā)-Stage模型能力接口(五)

    說明 Common模塊將二級模塊API組織在一起方便開發(fā)者進行導(dǎo)出。本模塊首批接口從API version 9開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨標(biāo)記接口的起始版本。本模塊接口僅可
    發(fā)表于 12-15 15:11

    鴻蒙系統(tǒng)是基于什么開發(fā)

    鴻蒙系統(tǒng)作為華為的備用方案,首先必須要考慮的就是兼容性和開放性,這樣更加自由的Linux自然就是首選,由于Linux可以運行在多種硬件平臺上,所以基于此開發(fā)鴻蒙系統(tǒng)可以盡可能的兼容適配更多的硬件
    的頭像 發(fā)表于 07-01 16:43 ?1.5w次閱讀

    鴻蒙系統(tǒng)是基于什么開發(fā)

    爭議,那么鴻蒙系統(tǒng)到底是基于什么開發(fā)的呢?下面小編就為大家?guī)?b class='flag-5'>鴻蒙系統(tǒng)是基于什么開發(fā)的答案。 鴻蒙系統(tǒng)是基于什么
    的頭像 發(fā)表于 07-05 17:12 ?1.1w次閱讀

    EventHub開源事件分析平臺

    EventHub.zip
    發(fā)表于 04-27 09:19 ?1次下載
    <b class='flag-5'>EventHub</b>開源事件分析平臺

    鴻蒙ArkUI開發(fā)-Tabs組件的使用

    鴻蒙ArkUI開發(fā)-Tabs組件的使用
    的頭像 發(fā)表于 01-19 16:01 ?1413次閱讀
    <b class='flag-5'>鴻蒙</b>ArkUI<b class='flag-5'>開發(fā)</b>-Tabs組件的使用

    鴻蒙開發(fā)【設(shè)備開發(fā)基礎(chǔ)知識】

    鴻蒙開發(fā)基礎(chǔ)知識講解
    的頭像 發(fā)表于 01-29 18:44 ?772次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>【設(shè)備<b class='flag-5'>開發(fā)</b>基礎(chǔ)知識】

    鴻蒙開發(fā)用什么語言?

    兩種開發(fā)方向 我們常說鴻蒙開發(fā),但是其實鴻蒙開發(fā)分為兩個方向: 一個是系統(tǒng)級別的開發(fā),比如驅(qū)動,
    的頭像 發(fā)表于 01-30 16:12 ?1252次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>用什么語言?

    鴻蒙開發(fā)教程

    去年8 月份華為發(fā)布會上,華為發(fā)布了HarmonyOS NEXT預(yù)覽版,宣布不再兼容安卓應(yīng)用。大家期待的純血鴻蒙終于要來臨了,next 預(yù)覽版本現(xiàn)在已經(jīng)開放申請渠道了,Next 開發(fā)者預(yù)覽版本目前只
    的頭像 發(fā)表于 01-31 17:11 ?580次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>教程

    使用 Taro 開發(fā)鴻蒙原生應(yīng)用 —— 快速上手,鴻蒙應(yīng)用開發(fā)指南

    隨著鴻蒙系統(tǒng)的不斷完善,許多應(yīng)用廠商都希望將自己的應(yīng)用移植到鴻蒙平臺上。最近,Taro 發(fā)布了 v4.0.0-beta.x 版本,支持使用 Taro 快速開發(fā)鴻蒙原生應(yīng)用,也可將現(xiàn)有的
    的頭像 發(fā)表于 02-02 16:09 ?693次閱讀
    使用 Taro <b class='flag-5'>開發(fā)</b><b class='flag-5'>鴻蒙</b>原生應(yīng)用 —— 快速上手,<b class='flag-5'>鴻蒙</b>應(yīng)用<b class='flag-5'>開發(fā)</b>指南

    鴻蒙NEXT南向開發(fā)案例:【智能臺燈】

    鴻蒙南向開發(fā)智能臺燈案例
    的頭像 發(fā)表于 04-03 18:00 ?781次閱讀
    <b class='flag-5'>鴻蒙</b>NEXT南向<b class='flag-5'>開發(fā)</b>案例:【智能臺燈】