HarmonyOS鸿蒙Next中订阅了hiAppEvent启动耗时事件(ArkTS)但是数据获取不到?

HarmonyOS鸿蒙Next中订阅了hiAppEvent启动耗时事件(ArkTS)但是数据获取不到?

import { hiAppEvent, hilog } from '@kit.PerformanceAnalysisKit';

hiAppEvent.addWatcher({
   // 开发者可以自定义观察者名称,系统会使用名称来标识不同的观察者
   name: "watcher",
   // 开发者可以订阅感兴趣的系统事件,此处是订阅了启动耗时事件
   appEventFilters: [
     {
       domain: hiAppEvent.domain.OS,
       names: [hiAppEvent.event.APP_LAUNCH]
     }
   ],
   // 开发者可以自行实现订阅回调函数,以便对订阅获取到的事件数据进行自定义处理
   onReceive: (domain: string, appEventGroups: Array<hiAppEvent.AppEventGroup>) => {
     hilog.info(0x0000, 'testTag', `HiAppEvent onReceive: domain=${domain}`);
     for (const eventGroup of appEventGroups) {
       // 开发者可以根据事件集合中的事件名称区分不同的系统事件
       hilog.info(0x0000, 'testTag', `HiAppEvent eventName=${eventGroup.name}`);
       for (const eventInfo of eventGroup.appEventInfos) {
         // 开发者可以对事件集合中的事件数据进行自定义处理,此处是将事件数据打印在日志中
         hilog.info(0x0000, 'testTag', `HiAppEvent eventInfo=${JSON.stringify(eventInfo)}`);
       }
     }
   }
});

使用示例代码 但是启动耗时的数据获取不到


更多关于HarmonyOS鸿蒙Next中订阅了hiAppEvent启动耗时事件(ArkTS)但是数据获取不到?的实战教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

开发者您可以参考:启动耗时事件介绍-启动耗时事件

开发者您可以应用退出一会重新启动应用看看有没有相关日志呢。

如果还是不行,麻烦您提供下您的DevEco Studio的版本信息、完整的日志信息呢。

更多关于HarmonyOS鸿蒙Next中订阅了hiAppEvent启动耗时事件(ArkTS)但是数据获取不到?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


试了下,也没触发。更具官网说明,系统在监控应用启动时依赖特定关键事件的记录,可能被依赖的事件没触发吧

系统在监控应用启动时依赖特定关键事件的记录,若这些事件在5秒内全部上报,系统将立即生成APP_LAUNCH事件,并通过回调函数将事件内容传递给应用;

若关键事件存在缺失,系统将在5秒后根据实际接收到的关键事件生成APP_LAUNCH事件。在生成APP_LAUNCH事件的过程中,若应用出现退出或崩溃,onReceive回调接口可能不会被触发,从而导致事件上报失败。当应用重新启动时,将上报前次未发送的启动耗时事件。

应用退出,重新启动,再查看日志看下有没有数据呢?

没有 其他的事件有这个事件的数据摸不到头脑,

订阅hiAppEvent启动耗时事件获取不到数据,可能是以下原因导致:

  1. 应用未正确配置事件订阅权限,需在module.json5文件中声明ohos.permission.APP_ACCELERATION_STARTUP权限。

  2. 事件订阅代码未在应用启动早期阶段执行,建议在Ability的onCreate生命周期初期调用hiAppEvent订阅方法。

  3. 设备系统版本未达到要求,鸿蒙Next对hiAppEvent的支持需要特定基线版本。

  4. 订阅的事件参数或事件名称与系统实际发出的事件不匹配,需核对事件名是否为startup相关定义。

检查以下几个方面:

  1. 权限配置:确保在module.json5中声明了ohos.permission.APP_ABILITY_BACKGROUND_RUNNING权限,并在应用首次启动时动态申请。

  2. 观察者注册时机:在应用启动的早期阶段(如Ability的onCreate)注册观察者,避免错过启动事件。

  3. 事件触发条件:APP_LAUNCH事件通常在冷启动或温启动时触发,热启动可能不会产生事件。尝试完全退出应用后重新启动。

  4. 日志级别:检查hilog的日志级别是否设置为INFO或更低,确保日志可输出。使用hilog.isLoggable(0x0000, hilog.LogLevel.INFO)验证。

  5. 系统版本兼容性:确认设备为HarmonyOS Next版本,且API版本支持hiAppEvent接口。

  6. 回调函数执行:在onReceive回调中添加断点或日志,确认是否被调用。若未被调用,可能是事件未触发或观察者注册失败。

若以上均无误,可尝试订阅其他系统事件(如APP_TERMINATE)测试观察者功能是否正常。

回到顶部