Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
488ba472
D
Docs
项目概览
OpenHarmony
/
Docs
12 个月 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
488ba472
编写于
2月 09, 2022
作者:
X
xuyong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
hisysevent tag订阅文档更新
Signed-off-by:
N
xuyong
<
xuyong59@huawei.com
>
上级
987f6044
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
53 addition
and
55 deletion
+53
-55
zh-cn/device-dev/subsystems/subsys-dfx-hisysevent-read.md
zh-cn/device-dev/subsystems/subsys-dfx-hisysevent-read.md
+53
-55
未找到文件。
zh-cn/device-dev/subsystems/subsys-dfx-hisysevent-read.md
浏览文件 @
488ba472
...
...
@@ -2,9 +2,7 @@
-
[
概述
](
#section315316685112
)
-
[
接口说明
](
#section0342191810519
)
-
[
订阅HiSysEvent事件
](
#section123181432175110
)
-
[
编译配置
](
#section123181432175187
)
-
[
源代码开发
](
#section123181432175165
)
-
[
开发实例
](
#section123181432175110
)
## 概述<a name="section315316685112"></a>
...
...
@@ -112,71 +110,71 @@ HiSysEvent提供了跨进程订阅机制,开发者可以通过注册订阅接
</tbody>
</table>
##
订阅HiSysEvent事件
<a name="section123181432175110"></a>
##
开发实例
<a name="section123181432175110"></a>
### 编译配置<a name="section123181432175187"></a>
C++接口实例
编译配置文件中增加对hisysevent
\_
native组件libhisyseventmanager库的依赖:
1.
编译配置文件中增加对hisysevent
\_
native组件libhisyseventmanager库的依赖:
```
external_deps = [ "hisysevent_native:libhisyseventmanager", ]
```
```
external_deps = [ "hisysevent_native:libhisyseventmanager", ]
```
### 源代码开发<a name="section123181432175165"></a>
2.
源代码开发
-
自定义订阅回调实现类DemoListener:
自定义订阅回调实现类DemoListener:
```
#ifndef DEMO_LISTENER_H
#define DEMO_LISTENER_H
```
#ifndef DEMO_LISTENER_H
#define DEMO_LISTENER_H
#include "hisysevent_subscribe_callback_native.h"
#include "hisysevent_subscribe_callback_native.h"
#include <string>
#include <string>
class DemoListener : public OHOS::HiviewDFX::HiSysEventSubscribeCallBackNative {
public:
explicit DemoListener() : HiSysEventSubscribeCallBackNative() {}
void OnHandle(const std::string& domain, const std::string& eventName, const int eventType,
const std::string& eventDetail);
virtual ~DemoListener() {}
void OnServiceDied();
};
```
class DemoListener : public OHOS::HiviewDFX::HiSysEventSubscribeCallBackNative {
public:
explicit DemoListener() : HiSysEventSubscribeCallBackNative() {}
void OnHandle(const std::string& domain, const std::string& eventName, const int eventType,
const std::string& eventDetail);
virtual ~DemoListener() {}
void OnServiceDied();
};
```
-
实现订阅回调接口:
实现订阅回调接口:
```
#include "demo_listener.h"
```
#include "demo_listener.h"
#include <iostream>
#include <iostream>
void DemoListener::OnHandle(const std::string& domain, const std::string& eventName,
const int eventType, const std::string& eventDetail)
{
std::cout << eventDetail << std::endl;
}
void DemoListener::OnHandle(const std::string& domain, const std::string& eventName,
const int eventType, const std::string& eventDetail)
{
std::cout << eventDetail << std::endl;
}
void DemoListener::OnServiceDied()
{
std::cout << std::string("service disconnect, exit") << std::endl;
exit(0);
}
```
void DemoListener::OnServiceDied()
{
std::cout << std::string("service disconnect, exit") << std::endl;
exit(0);
}
```
-
通过HiSysEventManager类提供的AddEventListener接口注册回调对象:
通过HiSysEventManager类提供的AddEventListener接口注册回调对象:
```
auto demoListener = std::make_shared<DemoListener>();
// 事件标签规则订阅,规则类型为默认的全词匹配类型
ListenerRule tagRule("dfx");
// 事件标签规则订阅,规则类型为正则匹配类型
ListenerRule regRule("dfx.*", RuleType::REGULAR);
// 事件领域及事件名称规则订阅,规则类型为前缀匹配类型
ListenerRule domainNameRule("HIVIEWDFX", "APP_USAGE", RuleType::PREFIX);
std::vector<ListenerRule> sysRules;
sysRules.push_back(tagRule);
sysRules.push_back(regRule);
sysRules.push_back(domainNameRule);
HiSysEventManager::AddEventListener(demoListener, sysRules);
```
```
auto demoListener = std::make_shared<DemoListener>();
// 事件标签规则订阅,规则类型为默认的全词匹配类型
ListenerRule tagRule("dfx");
// 事件标签规则订阅,规则类型为正则匹配类型
ListenerRule regRule("dfx.*", RuleType::REGULAR);
// 事件领域及事件名称规则订阅,规则类型为前缀匹配类型
ListenerRule domainNameRule("HIVIEWDFX", "APP_USAGE", RuleType::PREFIX);
std::vector<ListenerRule> sysRules;
sysRules.push_back(tagRule);
sysRules.push_back(regRule);
sysRules.push_back(domainNameRule);
HiSysEventManager::AddEventListener(demoListener, sysRules);
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录