公共事件簡介

2024-01-25 12:26 更新

HarmonyOS通過CES(Common Event Service,公共事件服務(wù))為應(yīng)用程序提供訂閱、發(fā)布、退訂公共事件的能力。

公共事件從系統(tǒng)角度可分為:系統(tǒng)公共事件和自定義公共事件。

  • 系統(tǒng)公共事件:CES內(nèi)部定義的公共事件,只有系統(tǒng)應(yīng)用和系統(tǒng)服務(wù)才能發(fā)布,例如HAP安裝,更新,卸載等公共事件。目前支持的系統(tǒng)公共事件詳見系統(tǒng)公共事件定義

  • 自定義公共事件:應(yīng)用自定義一些公共事件用來實現(xiàn)跨進程的事件通信能力。

公共事件按發(fā)送方式可分為:無序公共事件、有序公共事件和粘性公共事件。

  • 無序公共事件:CES轉(zhuǎn)發(fā)公共事件時,不考慮訂閱者是否接收到,且訂閱者接收到的順序與其訂閱順序無關(guān)。

  • 有序公共事件:CES轉(zhuǎn)發(fā)公共事件時,根據(jù)訂閱者設(shè)置的優(yōu)先級等級,優(yōu)先將公共事件發(fā)送給優(yōu)先級較高的訂閱者,等待其成功接收該公共事件之后再將事件發(fā)送給優(yōu)先級較低的訂閱者。如果有多個訂閱者具有相同的優(yōu)先級,則他們將隨機接收到公共事件。

  • 粘性公共事件:能夠讓訂閱者收到在訂閱前已經(jīng)發(fā)送的公共事件就是粘性公共事件。普通的公共事件只能在訂閱后發(fā)送才能收到,而粘性公共事件的特殊性就是可以先發(fā)送后訂閱。發(fā)送粘性事件必須是系統(tǒng)應(yīng)用或系統(tǒng)服務(wù),且需要申請ohos.permission.COMMONEVENT_STICKY權(quán)限,配置方式請參閱訪問控制授權(quán)申請指導(dǎo)。

每個應(yīng)用都可以按需訂閱公共事件,訂閱成功,當公共事件發(fā)布時,系統(tǒng)會將其發(fā)送給對應(yīng)的應(yīng)用。這些公共事件可能來自系統(tǒng)、其他應(yīng)用和應(yīng)用自身。

圖1 公共事件示意圖

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號