鸿蒙HarmonyOS实战-Stage模型(进程模型)_鸿蒙 stage 进程

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数HarmonyOS鸿蒙开发工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年HarmonyOS鸿蒙开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img

img
img
htt

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上HarmonyOS鸿蒙开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注鸿蒙获取)
img

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

console.info(‘Succeeded in creating subscriber.’);
subscriber = data;
// 订阅公共事件回调
})

// 订阅公共事件回调
if (subscriber !== null) {
commonEventManager.subscribe(subscriber, (err: Base.BusinessError, data: commonEventManager.CommonEventData) => {
if (err) {
console.error(Failed to subscribe common event. Code is ${err.code}, message is ${err.message});
return;
}
})
} else {
console.error(Need create subscriber);
}


#### 🦋2.3 静态订阅公共事件(仅对系统应用开放)


1、声明一个静态订阅者,首先需要在工程中新建一个ExtensionAbility, 该ExtensionAbility从StaticSubscriberExtensionAbility派生,其代码实现如下:



import StaticSubscriberExtensionAbility from ‘@ohos.application.StaticSubscriberExtensionAbility’

export default class StaticSubscriber extends StaticSubscriberExtensionAbility {
onReceiveEvent(event) {
console.log(‘onReceiveEvent, event:’ + event.event);
}
}


2、配置文件



{
“module”: {

“extensionAbilities”: [
{
“name”: “StaticSubscriber”,
“srcEntrance”: “./ets/StaticSubscriber/StaticSubscriber.ts”,
“description”: “ s t r i n g : S t a t i c S u b s c r i b e r d e s c " , " i c o n " : " string:StaticSubscriber_desc", "icon": " string:StaticSubscriberdesc","icon":"media:icon”,
“label”: “KaTeX parse error: Expected '}', got 'EOF' at end of input: … "resource": "profile:subscribe”
}
]
}
]

}
}




| 属性名称 | 属性值 |
| --- | --- |
| srcEntrance | 表示ExtensionAbility的入口文件路径,即步骤2中声明的静态订阅者所在的文件路径 |
| type | 表示ExtensionAbility的类型,对于静态订阅者需要声明为“staticSubscriber” |
| metadata | 表示ExtensionAbility的二级配置文件信息。由于不同的ExtensionAbility类型其配置信息不尽相同,因此需要使用不同的config文件表示其具体配置信息 |
| –name | 表示ExtensionAbility的类型名称,对于静态订阅类型,name必须声明为“ohos.extension.staticSubscriber”,否则无法识别为静态订阅者 |
| –resource | 字段表示ExtensionAbility的配置信息路径,由开发者自行定义,在本例中表示路径为“resources/base/profile/subscribe.json" |


metadata指向的二级配置文件的通常形式如下:



{
“commonEvents”: [
{
“name”: “xxx”,
“permission”: “xxx”,
“events”:[
“xxx”
]
}
]
}




| 字段 | 说明 |
| --- | --- |
| name | 静态订阅ExtensionAbility的名称,需要和module.json5中声明的ExtensionAbility的name一致 |
| permission | 订阅者要求的发布者需要具备的权限,对于发布了目标事件但不具备permission中声明的权限的发布者将被视为非法事件不予发布 |
| events | 订阅的目标事件列表 |


修改设备系统配置文件 /etc/static\_subscriber\_config.json,将静态订阅应用者的包名添加至该json文件中即可



{
“xxx”,
“ohos.extension.staticSubscriber”,
“xxx”
}


#### 🦋2.3 取消动态订阅公共事件



import commonEvent from ‘@ohos.commonEventManager’;
// subscriber为订阅事件时创建的订阅者对象
if (subscriber !== null) {
commonEvent.unsubscribe(subscriber, (err) => {
if (err) {
console.error([CommonEvent] UnsubscribeCallBack err=${JSON.stringify(err)})
} else {
console.info([CommonEvent] Unsubscribe)
subscriber = null
}
})
}


### 3.发布


在发布订阅模型中,发布是指将消息发送到主题中。发布者通常不需要关心谁订阅了它们的消息,也不需要知道是否有订阅者。发布者只需要将消息发送到主题,然后该主题负责将消息传递给所有订阅者。


发布订阅模型可以用于实现异步通信,其中发布者和订阅者可以在互不干扰的情况下进行工作。发布者可以继续发布消息,而订阅者可以在需要时接收消息。


#### 🦋3.1 发布不携带信息的公共事件



import commonEvent from ‘@ohos.commonEventManager’;

// 发布公共事件
commonEvent.publish(“usual.event.SCREEN_OFF”, (err) => {
if (err) {
console.error([CommonEvent] PublishCallBack err=${JSON.stringify(err)});
} else {
console.info([CommonEvent] Publish success);
}
})


#### 🦋3.2 发布携带信息的公共事件



import commonEvent from ‘@ohos.commonEventManager’;

// 公共事件相关信息
let options = {
code: 1, // 公共事件的初始代码
data: “initial data”, // 公共事件的初始数据
}

// 发布公共事件
commonEvent.publish(“usual.event.SCREEN_OFF”, options, (err) => {
if (err) {
console.error(‘[CommonEvent] PublishCallBack err=’ + JSON.stringify(err));
} else {
console.info(‘[CommonEvent] Publish success’)
}
})


###  🚀写在最后


* 如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
* 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
* 关注小编,同时可以期待后续文章ing🚀,不定期分享原创知识。
* 想要获取更多完整鸿蒙最新VIP学习资料,请点击→[全套鸿蒙HarmonyOS学习资料]( )
* 或者关注小编后私信回复【666】也可获取资料哦~~
ess')
    }
})

🚀写在最后

  • 如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
  • 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
  • 关注小编,同时可以期待后续文章ing🚀,不定期分享原创知识。
  • 想要获取更多完整鸿蒙最新VIP学习资料,请点击→全套鸿蒙HarmonyOS学习资料
  • 或者关注小编后私信回复【666】也可获取资料哦~~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值