HarmonyOS 调用killAllProcesses退出应用,并杀掉进程接口,应用界面会闪烁,退出动画也不流畅

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

可以试试使用UIAbilityContext.terminateSelf退出当前应用,killAllProcesses是找出应用下面所有的进程,逐个kill掉。terminateSelf是走UIAbility的正常生命周期,正常销毁。terminateSelf API文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-inner-application-uiabilitycontext-V5#uiabilitycontextterminateself可以先使用terminateSelf关闭页面,然后在回调中执行killAllProcesses,在后台杀掉所有进程。这样退出应用就会丝滑很多,示例如下:

import common from '@ohos.app.ability.common';
import { BusinessError } from '@kit.BasicServicesKit';

@Entry
@Component
struct WebViewPage {
  private context = getContext(this) as common.UIAbilityContext
  build() {
    Row() {
      Column() {
        Button('退出')
          .onClick(()=>{
            try {
              this.context.terminateSelf((err: BusinessError) => {
                if (err.code) {
                  // 处理业务逻辑错误
                  console.error(`terminateSelf failed, code is ${err.code}, message is ${err.message}`);
                  return;
                }
                // 执行正常业务
                let applicationContext = this.context.getApplicationContext();
                applicationContext.killAllProcesses()
                console.info('terminateSelf succeed');
              });
            } catch (err) {
              // 捕获同步的参数错误
              let code = (err as BusinessError).code;
              let message = (err as BusinessError).message;
              console.error(`terminateSelf failed, code is ${code}, message is ${message}`);
            }
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}

应用退出后,再立刻点击桌面图片后,应用可能无法启动,是因为调用terminateSelf接口后,任务中心的任务默认不会清理,如需清理,需要配置removeMissionAfterTerminate为true。需要在module.json5下配置此属性,参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/module-configuration-file-V5#abilities%E6%A0%87%E7%AD%BE

// mudule.json5
{
  "module": {
  ......
  "abilities":  [
  .......
  "removeMissionAfterTerminate": true
  ]
}
}
分享
微博
QQ
微信
回复
3天前
相关问题
HarmonyOS grid拖拽后动画不流畅
25浏览 • 1回复 待解决
HarmonyOS 退出应用
84浏览 • 1回复 待解决
HarmonyOS 主动退出应用
644浏览 • 1回复 待解决
HarmonyOS 如何彻底退出应用
88浏览 • 1回复 待解决
ets开发应用怎么退出当前应用
3821浏览 • 1回复 待解决
HarmonyOS 如何退出应用程序?
246浏览 • 1回复 待解决
FormExtensionAbility进程自动退出问题
2395浏览 • 0回复 待解决
如何退出应用,你了解吗?
2519浏览 • 1回复 待解决
HarmonyOS 是否有退出应用的api?
318浏览 • 1回复 待解决
HarmonyOS router.back无法退出应用
50浏览 • 1回复 待解决
HarmonyOS 主动退出应用程序问题
730浏览 • 1回复 待解决
HarmonyOS 退出应用程序代码
118浏览 • 1回复 待解决
为什么HelloWorld应用退出时会黑屏?
2697浏览 • 3回复 待解决
HarmonyOS 退出程序调用什么api?
45浏览 • 0回复 待解决
实现二次侧滑退出应用
1859浏览 • 1回复 待解决
如何获取应用信息以及彻底退出APP
423浏览 • 1回复 待解决