服务卡片的生命周期函数中断点没有触发

问题现象

元服务项目在服务卡片开发过程中,服务卡片级生命周期函数中的断点都没有触发。

背景知识

  • FormExtensionAbility:FormExtensionAbility是HarmonyOS系统中用于实现服务卡片(Form)的核心扩展组件,属于ExtensionAbility类型中的FORM类型。其主要作用是将应用的关键信息或操作前置到卡片界面,实现服务直达、减少用户操作层级。
  • UIAbility:UIAbility是HarmonyOS应用的核心组件,承担用户交互和界面管理职责,每个UIAbility对应一个独立的应用窗口实例。作为Ability体系的核心类型,支持与其他扩展能力(如FormExtensionAbility)协同,实现服务卡片、后台任务等场景化功能。

解决方案

UIAbility默认运行在独立进程,而由于FormExtensionAbility进程隔离,卡片也运行在独立进程中,两者不是同一个进程。

调试技巧:

  1. 日志输出辅助:在生命周期函数中添加console.log或Logger输出,验证函数是否实际执行,排除断点位置设置错误的问题。
  2. extension调试:通过DevEco Studio的extension调试方法,修改Run/Debug Configuration中Launch Options中的Ability为实际声明的FormExtensionAbility,启动调试即可触发服务卡片的生命周期函数中的断点。