diff --git a/zh-cn/application-dev/reference/apis/js-apis-app-ability-serviceExtensionAbility.md b/zh-cn/application-dev/reference/apis/js-apis-app-ability-serviceExtensionAbility.md index 8e521d379da256f91114d62f06a822f01903758c..d373237d580efd7dfba53f3d326035b68679b1ad 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-app-ability-serviceExtensionAbility.md +++ b/zh-cn/application-dev/reference/apis/js-apis-app-ability-serviceExtensionAbility.md @@ -145,6 +145,29 @@ Extension生命周期回调,如果是connectAbility拉起的服务,会在onC } ``` +如果生成返回值RemoteObject依赖一个异步接口,可以使用异步生命周期: + + ```ts +import rpc from '@ohos.rpc'; +class StubTest extends rpc.RemoteObject{ + constructor(des) { + super(des); + } + onConnect(code, data, reply, option) { + } +} +async function getDescriptor() { + // 调用异步函数... + return "asyncTest" +} +class ServiceExt extends ServiceExtension { + async onConnect(want) { + console.log(`onConnect , want: ${want.abilityName}`); + let descriptor = await getDescriptor(); + return new StubTest(descriptor); + } +} + ``` ## ServiceExtensionAbility.onDisconnect @@ -172,6 +195,17 @@ Extension的生命周期回调,客户端执行断开连接服务时回调。 } ``` +在执行完onDisconnect生命周期回调后,应用可能会退出,从而可能导致onDisconnect中的异步函数未能正确执行,比如异步写入数据库。可以使用异步生命周期,以确保异步onDisconnect完成后再继续后续的生命周期。 + + ```ts +class ServiceExt extends ServiceExtension { + async onDisconnect(want) { + console.log('onDisconnect, want: ${want.abilityName}'); + // 调用异步函数... + } +} + ``` + ## ServiceExtensionAbility.onReconnect onReconnect(want: Want): void; diff --git a/zh-cn/application-dev/reference/apis/js-apis-app-ability-uiAbility.md b/zh-cn/application-dev/reference/apis/js-apis-app-ability-uiAbility.md index 2301738bc5f83b30c6139ed963e20eac4c260930..9d97d5714902777c36219523b650cba378b4fd9a 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-app-ability-uiAbility.md +++ b/zh-cn/application-dev/reference/apis/js-apis-app-ability-uiAbility.md @@ -132,6 +132,7 @@ UIAbility生命周期回调,在销毁时回调,执行资源清理等操作 **示例:** + ```ts class MyUIAbility extends UIAbility { onDestroy() { @@ -140,6 +141,16 @@ UIAbility生命周期回调,在销毁时回调,执行资源清理等操作 } ``` +在执行完onDestroy生命周期回调后,应用可能会退出,从而可能导致onDestroy中的异步函数未能正确执行,比如异步写入数据库。可以使用异步生命周期,以确保异步onDestroy完成后再继续后续的生命周期。 + + ```ts +class MyUIAbility extends UIAbility { + async onDestroy() { + console.log('onDestroy'); + // 调用异步函数... + } +} + ``` ## UIAbility.onForeground