静态订阅允许应用在未启动时监听系统事件(如开关机、时区变更等),事件触发后系统自动拉起应用并执行回调。

1.添加module.json5配置

{
  "name": "StaticSubscriber",
  "srcEntry": "",//StaticSubscriberAbility文件路径,自定
  "type": "staticSubscriber",
  "exported": true,
  "metadata": [
    {
      "name": "ohos.extension.staticSubscriber",
      "resource": "$profile:staticsubscriber"//配置监听事件,与后续配置文件名保持一致即可
    }
  ]
}

2.配置监听事件

在module.json5同级别目录下的/resources/base/profile,添加staticsubscriber.json文件。

{
  "commonEvents": [
    {
      "name": "StaticSubscriber",
      "permission": "",
      "events": [
        "usual.event.BOOT_COMPLETED"//启动完成事件
      ]
    }
  ]
}

3.StaticSubscriberAbility示例

export default class StaticSubscriber extends StaticSubscriberExtensionAbility {
  onReceiveEvent(event: commonEventManager.CommonEventData): void {
    Log.info(TAG, `onReceiveEvent event: ${JSON.stringify(event)}`);
    setTimeout(() => {
      //对应的执行事件
    }, 5000);//延时可以不配置。但不能超过15s,该ability最多在接收到事件后存活15s
  }
​
}

4.配置权限

在system/etc/app目录下配置对应文件

install_list_capability.json文件

{
            "bundleName": "",//按需配置
            "app_signature" : [""],//按需配置
            "allowCommonEvent": ["usual.event.BOOT_COMPLETED"],//按需配置,系统启动完毕配置该事件
            "allowAppUsePrivilegeExtension": true
}

5.完成以上配置应用就能成功接收到对应的系统事件

 

 

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐