diff --git a/frameworks/ets/ets/@ohos.app.ability.ServiceExtensionAbility.ets b/frameworks/ets/ets/@ohos.app.ability.ServiceExtensionAbility.ets index ae7157001b91fd3cff2e6da2b8330a446636cf30..b9cba009044207d36b854889dfd3242c846249e1 100644 --- a/frameworks/ets/ets/@ohos.app.ability.ServiceExtensionAbility.ets +++ b/frameworks/ets/ets/@ohos.app.ability.ServiceExtensionAbility.ets @@ -57,22 +57,11 @@ export default class ServiceExtensionAbility { private native nativeOnDisconnectCallback(): void; private callOnDisconnect(want: Want): boolean { - const derivedClassType = AbilityUtils.getClassType(this); - if (derivedClassType === undefined) { - this.onDisconnect(want); - return false; - } - const serviceExtensionClassType = AbilityUtils.getClassType(new ServiceExtensionAbility()); - if (serviceExtensionClassType === undefined) { - this.onDisconnect(want); - return false; - } - const isOverride = AbilityUtils.isOverride(derivedClassType, "onDisconnectAsync", serviceExtensionClassType); - if (isOverride) { - this.onDisconnectAsync(want).then(() => this.nativeOnDisconnectCallback()); + let p = this.onDisconnect(want); + if (p instanceof Promise) { + p.then(() => this.nativeOnDisconnectCallback()); return true; } - this.onDisconnect(want); return false; } @@ -94,11 +83,8 @@ export default class ServiceExtensionAbility { return myService; } - onDisconnect(want: Want): void { - } - - onDisconnectAsync(want: Want): Promise { - return new Promise((resolve: (a: undefined) => void, reject: (err: Error) => void): void => {}); + onDisconnect(want: Want): Promise | undefined { + return undefined; } onConfigurationUpdate(newConfig: Configuration): void { diff --git a/frameworks/ets/ets/@ohos.app.ability.UIAbility.ets b/frameworks/ets/ets/@ohos.app.ability.UIAbility.ets index 47fc8783a8bfead9872830b10e848bb6466ac435..3c3f1f5fe25c6a0fb45638d986fc07d41b68e757 100644 --- a/frameworks/ets/ets/@ohos.app.ability.UIAbility.ets +++ b/frameworks/ets/ets/@ohos.app.ability.UIAbility.ets @@ -46,21 +46,11 @@ export default class UIAbility extends Ability { private native nativeOnDestroyCallback(): void; private callOnDestroy(): boolean { - const derivedClassType = AbilityUtils.getClassType(this); - if (derivedClassType === undefined) { - this.onDestroy(); - return false; - } - const uiAbilityClassType = AbilityUtils.getClassType(new UIAbility()); - if (uiAbilityClassType === undefined) { - this.onDestroy(); - return false; - } - if (AbilityUtils.isOverride(derivedClassType, "onDestroyAsync", uiAbilityClassType)) { - this.onDestroyAsync().then(() => this.nativeOnDestroyCallback()); + let p = this.onDestroy(); + if (p instanceof Promise) { + p.then(() => this.nativeOnDestroyCallback()); return true; } - this.onDestroy(); return false; } @@ -84,12 +74,8 @@ export default class UIAbility extends Ability { onWindowStageRestore(windowStage: window.WindowStage): void { } - onDestroy(): void { - } - - onDestroyAsync(): Promise { - return new Promise((resolve: (a: undefined) => void, reject: (err: Error) => void): void => { - }); + onDestroy(): Promise | undefined { + return undefined; } onForeground(): void { diff --git a/frameworks/ets/ets/@ohos.app.ability.UIExtensionAbility.ets b/frameworks/ets/ets/@ohos.app.ability.UIExtensionAbility.ets index 1109ad629867780ba2001cbd0c308c184107f146..c50ef5780f9c8ba1467e398906bce78880f3fd02 100644 --- a/frameworks/ets/ets/@ohos.app.ability.UIExtensionAbility.ets +++ b/frameworks/ets/ets/@ohos.app.ability.UIExtensionAbility.ets @@ -25,21 +25,11 @@ export default class UIExtensionAbility extends ExtensionAbility { private destroyCallbackPoint: long; private native nativeOnDestroyCallback(): void; private callOnDestroy(): boolean { - const derivedClassType = AbilityUtils.getClassType(this); - if (derivedClassType === undefined) { - this.onDestroy(); - return false; - } - const uiExtensionAbilityClassType = AbilityUtils.getClassType(new UIExtensionAbility()); - if (uiExtensionAbilityClassType === undefined) { - this.onDestroy(); - return false; - } - if (AbilityUtils.isOverride(derivedClassType, "onDestroyAsync", uiExtensionAbilityClassType)) { - this.onDestroyAsync().then(() => this.nativeOnDestroyCallback()); + let p = this.onDestroy(); + if (p instanceof Promise) { + p.then(() => this.nativeOnDestroyCallback()); return true; } - this.onDestroy(); return false; } @@ -55,9 +45,7 @@ export default class UIExtensionAbility extends ExtensionAbility { onBackground(): void {} - onDestroy(): void {} - - onDestroyAsync(): Promise { - return new Promise((resolve: (a: undefined)=>void, reject: (err: Error)=>void): void => {}); + onDestroy(): Promise | undefined { + return undefined; } }