【OpenHarmony 6.0】AppServiceExtensionAbility模块解析

90 阅读2分钟

@ohos.app.ability.AppServiceExtensionAbility (应用后台服务扩展组件)

AppServiceExtensionAbility模块提供后台服务相关扩展能力,包括后台服务的创建、销毁、连接、断开等生命周期回调。

说明:

本模块首批接口从API version 20开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

本模块接口仅可在Stage模型下使用。

生命周期

AppServiceExtensionAbility提供了onCreate()onRequest()onConnect()onDisconnect()onDestroy()生命周期回调,根据需要重写对应的回调方法。下图展示了AppServiceExtensionAbility的生命周期。

  • onCreate 在AppServiceExtensionAbility实例创建时,系统会触发该回调。

  • onDestroy 在AppServiceExtensionAbility实例销毁时,系统会触发该回调。

  • onRequest 调用方使用startAppServiceExtensionAbility()拉起AppServiceExtensionAbility实例时,系统会触发该回调。

  • onConnect 调用方使用connectAppServiceExtensionAbility连接AppServiceExtensionAbility实例时,系统会触发该回调。

  • onDisconnect 当所有连接方断开与AppServiceExtensionAbility实例的连接时,系统会触发该回调。

导入模块

import { AppServiceExtensionAbility } from '@kit.AbilityKit';

AppServiceExtensionAbility

AppServiceExtensionAbility模块提供后台服务相关扩展能力,包括后台服务的创建、销毁、连接、断开等生命周期回调。

属性

系统能力:SystemCapability.Ability.AbilityRuntime.Core

名称类型可读可写说明
contextAppServiceExtensionContextAppServiceExtensionAbility的上下文环境,继承自ExtensionContext

onCreate

onCreate(want: Want): void

在AppServiceExtensionAbility实例创建时,系统会触发该回调。应用可以在该接口中执行自己的业务逻辑初始化操作,例如注册公共事件监听等。

说明:

如果AppServiceExtensionAbility实例已创建,再次启动或连接该实例时不会触发onCreate()回调。

系统能力:SystemCapability.Ability.AbilityRuntime.Core

参数:

参数名类型必填说明
wantWant调用方拉起当前AppServiceExtensionAbility实例时传递的Want类型信息,包括Ability名称、Bundle名称等。

示例:

import { AppServiceExtensionAbility, Want } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

const TAG: string = '[AppServiceExtAbility]';

class AppServiceExtAbility extends AppServiceExtensionAbility {
  onCreate(want: Want) {
    hilog.info(0x0000, TAG, `onCreate, want: ${want.abilityName}`);
  }
}
DD一下:欢迎大家关注工粽号<程序猿百晓生>,可以了解到以下知识点。
`欢迎大家关注工粽号<程序猿百晓生>,可以了解到以下知识点学习。`
1.OpenHarmony开发基础
2.OpenHarmony北向开发环境搭建
3.鸿蒙南向开发环境的搭建
4.鸿蒙生态应用开发白皮书V2.0 & V3.0
5.鸿蒙开发面试真题(含参考答案) 
6.TypeScript入门学习手册
7.OpenHarmony 经典面试题(含参考答案)
8.OpenHarmony设备开发入门【最新版】
9.沉浸式剖析OpenHarmony源代码
10.系统定制指南
11.【OpenHarmony】Uboot 驱动加载流程
12.OpenHarmony构建系统--GN与子系统、部件、模块详解
13.ohos开机init启动流程
14.鸿蒙版性能优化指南
.......

onDestroy

onDestroy(): void

在AppServiceExtensionAbility实例销毁时,系统会触发该回调。应用可以在该接口中执行资源清理等操作,如注销监听等。

系统能力:SystemCapability.Ability.AbilityRuntime.Core

示例:

import { AppServiceExtensionAbility } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

const TAG: string = '[AppServiceExtAbility]';

class AppServiceExtAbility extends AppServiceExtensionAbility {
  onDestroy() {
    hilog.info(0x0000, TAG, `onDestroy`);
  }
}

onRequest

onRequest(want: Want, startId: number): void

调用方使用startAppServiceExtensionAbility()拉起AppServiceExtensionAbility实例时,系统会触发该回调。

  • 如果该实例已创建,则会直接回调该接口。
  • 如果该实例此前未被创建,则会先创建实例并触发onCreate()回调,再回调该接口。

系统能力:SystemCapability.Ability.AbilityRuntime.Core

参数:

参数名类型必填说明
wantWant调用方拉起当前AppServiceExtensionAbility实例时传递的Want类型信息,包括Ability名称、Bundle名称等。
startIdnumber返回拉起次数。首次拉起初始值返回1,多次之后自动递增。

示例:

import { AppServiceExtensionAbility, Want } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

const TAG: string = '[AppServiceExtAbility]';

class AppServiceExtAbility extends AppServiceExtensionAbility {
  onRequest(want: Want, startId: number) {
    hilog.info(0x0000, TAG, `onRequest, want: ${want.abilityName}, startId: ${startId}`);
  }
}

onConnect

onConnect(want: Want): rpc.RemoteObject

调用方使用connectAppServiceExtensionAbility连接AppServiceExtensionAbility实例时,系统会触发该回调。

  • 如果该实例已创建,则会直接回调该接口。
  • 如果该实例此前未被创建,则会先创建实例并触发onCreate()回调,再回调该接口。

应用需要在该接口中返回一个RemoteObject对象,用于客户端和服务端进行通信。当AppServiceExtensionAbility实例处于连接状态时,如果调用方发起新的连接,系统会返回缓存的RemoteObject对象,而不会重复回调onConnect()接口。

系统能力:SystemCapability.Ability.AbilityRuntime.Core

参数:

参数名类型必填说明
wantWant调用方拉起当前AppServiceExtensionAbility实例时传递的Want类型信息,包括Ability名称、Bundle名称等。

返回值:

类型说明
rpc.RemoteObject一个RemoteObject对象,用于客户端和服务端进行通信。

示例:

import { AppServiceExtensionAbility, Want } from '@kit.AbilityKit';
import { rpc } from '@kit.IPCKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

const TAG: string = '[AppServiceExtAbility]';

class StubTest extends rpc.RemoteObject {
  constructor(des: string) {
    super(des);
  }

  onConnect(code: number, data: rpc.MessageSequence, reply: rpc.MessageSequence, option: rpc.MessageOption) {
  }
}

class AppServiceExtAbility extends AppServiceExtensionAbility {
  onConnect(want: Want) {
    hilog.info(0x0000, TAG, `onConnect, want: ${want.abilityName}`);
    return new StubTest('test');
  }
}

onDisconnect

onDisconnect(want: Want): void

当所有连接方断开与AppServiceExtensionAbility实例的连接时,系统会触发该回调。

系统能力:SystemCapability.Ability.AbilityRuntime.Core

参数:

参数名类型必填说明
wantWant调用方拉起当前AppServiceExtensionAbility实例时传递的Want类型信息,包括Ability名称、Bundle名称等。

示例:

import { AppServiceExtensionAbility, Want } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

const TAG: string = '[AppServiceExtAbility]';

class AppServiceExtAbility extends AppServiceExtensionAbility {
  onDisconnect(want: Want) {
    hilog.info(0x0000, TAG, `onDisconnect, want: ${want.abilityName}`);
  }
}