• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 事件订阅简介
2
3<!--Kit: Performance Analysis Kit-->
4<!--Subsystem: HiviewDFX-->
5<!--Owner: @liujiaxing2024-->
6<!--Designer: @junjie_shi-->
7<!--Tester: @gcw_KuLfPSbe-->
8<!--Adviser: @foryourself-->
9
10## 事件介绍
11
12HiAppEvent能够订阅应用事件和系统事件。
13
14### 应用事件
15
16应用事件由开发者自行定义,例如点击按钮。应用事件的事件参数对象params包含的字段来源于应用,由开发者通过打点接口[write](../reference/apis-performance-analysis-kit/js-apis-hiviewdfx-hiappevent.md#hiappeventwrite-1)自定义配置。具体字段含义根据开发者需求确定。
17
18### 系统事件
19
20系统事件是指应用运行期间发生的性能、功耗、稳定性等问题。系统事件的事件参数对象params包含的字段来源于系统服务,已由系统服务定义。此外,系统事件中的崩溃事件和应用冻屏事件还支持开发者通过[setEventParam](../reference/apis-performance-analysis-kit/js-apis-hiviewdfx-hiappevent.md#hiappeventseteventparam12)接口向事件参数对象params中添加自定义参数。
21
22已支持的系统事件介绍、检测原理及事件参数对象params包含的字段说明,请查阅各系统事件介绍的详细文档。
23
24[崩溃事件介绍](hiappevent-watcher-crash-events.md)
25
26[应用冻屏事件介绍](hiappevent-watcher-freeze-events.md)
27
28[资源泄漏事件介绍](hiappevent-watcher-resourceleak-events.md)
29
30[地址越界事件介绍](hiappevent-watcher-address-sanitizer-events.md)
31
32[主线程超时事件介绍](hiappevent-watcher-mainthreadjank-events.md)
33
34[任务执行超时事件介绍](hiappevent-watcher-apphicollie-events.md)
35
36[应用查杀事件介绍](hiappevent-watcher-app-killed-events.md)
37
38<!--RP1-->
39<!--RP1End-->
40
41## 事件订阅的三种方式
42
43HiAppEvent通过[addWatcher](../reference/apis-performance-analysis-kit/js-apis-hiviewdfx-hiappevent.md#hiappeventaddwatcher)接口提供系统事件的订阅功能,支持三种订阅方式。
44
45方式一:设置回调条件triggerCondition,实现onTrigger()回调。当满足回调条件时,系统将自动触发回调。
46
47方式二:未设置回调条件参数,使用事件订阅返回的holder对象主动获取监听的事件。
48
49> **说明:**
50>
51> 主动获取监听的事件时,如果事件未生成或者日志信息未捕获完成,查询结果可能为空。此时,建议多次调用查询接口。
52
53方式三:实现onReceive()回调,当监听的事件发生后实时触发回调。
54
55ArkTS接口事件订阅参考[hiAppEvent.addWatcher](../reference/apis-performance-analysis-kit/js-apis-hiviewdfx-hiappevent.md#hiappeventaddwatcher);C/C++接口事件订阅只支持方式一和方式三,参考[事件订阅](hiappevent-watcher-app-events-ndk.md#步骤二订阅事件)。
56