HarmonyOS 如何在UIAbility中调用terminateSelf方法

在指导文档中有这么一段:例如调用terminateSelf()方法停止当前UIAbility实例,从而完成UIAbility实例的销毁;或者用户使用最近任务列表关闭该UIAbility实例,完成UIAbility的销毁。如何在onDestroy中调用这个方法?

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

Destroy状态在UIAbility实例销毁时触发。可以在onDestroy()回调中进行系统资源的释放、数据的保存等操作。也就是说当触发onDestroy()的时候,已经调用了terminateSelf()方法。

如下:

import { common } from '@kit.AbilityKit';
@Entry
@Component
struct Index13 {
  build() {
    Row() {
      Column() {
        Text("销毁实例")
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .onClick(() => {
            let context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext;
            context.terminateSelf((err) => {
              if (err.code) {
                console.log("销毁失败")
                return;
              } else {
                console.log("生命周期+调用terminateSelf")
              }
            })
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}
//EntryAbility 中
export default class EntryAbility extends UIAbility {
  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
  }
  onDestroy(): void {
    console.log("生命周期+触发onDestory方法");
  }

可以看到控制台打印:

04-02 17:28:04.356 17290-172 A03D00/JSAP com.examp...ation_01 I 生命周期+调用terminateSelf
04-02 17:28:04.397 17290-172 A03D00/JSAP com.examp...ation_01 I 生命周期+触发onDestory方法
分享
微博
QQ
微信
回复
23h前
相关问题
JSBind 如何调用 JS 方法的 callback
1747浏览 • 1回复 待解决
HarmonyOS js调用webview方法
505浏览 • 1回复 待解决