From 31f9278b8f15c6eec1c492117ed3b56525ac6b70 Mon Sep 17 00:00:00 2001 From: yangzk Date: Fri, 5 May 2023 20:32:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=BC=82=E6=AD=A5=E7=94=9F?= =?UTF-8?q?=E5=91=BD=E5=91=A8=E6=9C=9F=E6=8E=A5=E5=8F=A3=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yangzk Change-Id: Ib9e646322d16014c6715c9dc37aba4db2e4fc80a --- ...pis-app-ability-serviceExtensionAbility.md | 34 +++++++++++++++++++ .../apis/js-apis-app-ability-uiAbility.md | 11 ++++++ 2 files changed, 45 insertions(+) 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 8e521d379d..d373237d58 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 2301738bc5..9d97d57149 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 -- GitLab