如何让通过terminateSelf停止Ability后的应用不出现在最近任务列表中 HarmonyOS 鸿蒙Next

如何让通过terminateSelf停止Ability后的应用不出现在最近任务列表中 HarmonyOS 鸿蒙Next 可在moudule.json5中的abilities标签下配置removeMissionAfterTerminate属性为true。

2 回复

配置removeMissionAfterTerminate属性为true。

更多关于如何让通过terminateSelf停止Ability后的应用不出现在最近任务列表中 HarmonyOS 鸿蒙Next的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS中,如果你想在通过terminateSelf停止Ability后,应用不出现在最近任务列表中,可以通过以下方式实现:

  1. 设置AbilityInforemoveMissionAfterTerminate属性: 在config.json文件中,为对应的Ability设置removeMissionAfterTerminate属性为true。这样,当Ability通过terminateSelf停止后,该任务会自动从最近任务列表中移除。

    {
      "module": {
        "abilities": [
          {
            "name": ".MainAbility",
            "removeMissionAfterTerminate": true
          }
        ]
      }
    }
    
  2. 使用MissionManager手动移除任务: 在调用terminateSelf之前,可以通过MissionManager获取当前任务并手动移除。

    import missionManager from '[@ohos](/user/ohos).application.missionManager';
    import Ability from '[@ohos](/user/ohos).application.Ability';
    
    export default class MainAbility extends Ability {
      onDestroy() {
        missionManager.getMissionInfos(this.context, 0, (error, missions) => {
          if (error) {
            console.error('Failed to get mission infos.');
            return;
          }
          const currentMission = missions.find(mission => mission.abilityName === this.context.abilityInfo.name);
          if (currentMission) {
            missionManager.removeMission(currentMission.missionId, (error) => {
              if (error) {
                console.error('Failed to remove mission.');
              }
            });
          }
        });
        super.onDestroy();
      }
    }
    

通过以上方法,可以确保应用在停止后不会出现在最近任务列表中。

回到顶部