harmony 鸿蒙@ohos.app.ability.missionManager (missionManager)

2022-12-13 浏览 (781)

@ohos.app.ability.missionManager (missionManager)

missionManager模块提供系统任务管理能力,包括对系统任务执行锁定、解锁、清理、切换到前台等操作。

说明:

本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import missionManager from '@ohos.app.ability.missionManager';

权限列表

ohos.permission.MANAGE_MISSIONS

missionManager.on

on(type:'mission', listener: MissionListener): number;

注册系统任务状态监听器。

需要权限:ohos.permission.MANAGE_MISSIONS

系统能力:SystemCapability.Ability.AbilityRuntime.Mission

系统API: 此接口为系统接口,三方应用不支持调用。

参数:

参数名类型必填说明
listenerMissionListener系统任务监听器。

返回值:

类型说明
number监听器的index值,由系统创建,在注册系统任务状态监听时分配,和监听器一一对应 。

示例:

import missionManager from '@ohos.app.ability.missionManager';
import UIAbility from '@ohos.app.ability.UIAbility';
import AbilityConstant from '@ohos.app.ability.AbilityConstant';
import common from '@ohos.app.ability.common';
import Want from '@ohos.app.ability.Want';
import { BusinessError } from '@ohos.base';
import window from '@ohos.window';

let listener: missionManager.MissionListener = {
    onMissionCreated: (mission) => {console.log('--------onMissionCreated-------');},
    onMissionDestroyed: (mission) => {console.log('--------onMissionDestroyed-------');},
    onMissionSnapshotChanged: (mission) => {console.log('--------onMissionSnapshotChanged-------');},
    onMissionMovedToFront: (mission) => {console.log('--------onMissionMovedToFront-------');},
    onMissionIconUpdated: (mission, icon) => {console.log('--------onMissionIconUpdated-------');},
    onMissionClosed: (mission) => {console.log('--------onMissionClosed-------');},
    onMissionLabelUpdated: (mission) => {console.log('--------onMissionLabelUpdated-------');}
};

let listenerId = -1;
let abilityWant: Want;
let context: common.UIAbilityContext;

export default class EntryAbility extends UIAbility {
    onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {
        console.log('[Demo] EntryAbility onCreate');
        abilityWant = want;
        context = this.context;
    }

    onDestroy() {
        try {
            if (listenerId !== -1) {
                missionManager.off('mission', listenerId).catch((err: BusinessError) => {
                    console.log(err);
                });
            }
        } catch (paramError) {
            let code = (paramError as BusinessError).code;
            let message = (paramError as BusinessError).message;
            console.error(`error: ${code}, ${message} `);
        }
        console.log('[Demo] EntryAbility onDestroy');
    }

    onWindowStageCreate(windowStage: window.WindowStage) {
        // Main window is created, set main page for this ability
        console.log('[Demo] EntryAbility onWindowStageCreate');
        try {
            listenerId = missionManager.on('mission', listener);
        } catch (paramError) {
            let code = (paramError as BusinessError).code;
            let message = (paramError as BusinessError).message;
            console.error(`error: ${code}, ${message} `);
        }

        windowStage.loadContent('pages/index', (err, data) => {
            if (err.code) {
                console.error(`Failed to load the content. Cause: ${JSON.stringify(err)}`);
                return;
            }
            console.info(`Succeeded in loading the content. Data: ${JSON.stringify(data)}`);
        });
    }
};

missionManager.off

off(type: 'mission', listenerId: number, callback: AsyncCallback<void>): void;

解注册任务状态监听器。

需要权限:ohos.permission.MANAGE_MISSIONS

系统能力:SystemCapability.Ability.AbilityRuntime.Mission

系统API: 此接口为系统接口,三方应用不支持调用。

参数:

参数名类型必填说明
listenerIdnumber系统任务状态监器法的index值,和监听器一一对应,由on方法返回。
callbackAsyncCallback<void>执行结果回调函数。

错误码

错误码ID错误信息
16300002Input error. The specified mission listener does not exist.

以上错误码详细介绍请参考errcode-ability

示例:

import missionManager from '@ohos.app.ability.missionManager';
import UIAbility from '@ohos.app.ability.UIAbility';
import AbilityConstant from '@ohos.app.ability.AbilityConstant';
import common from '@ohos.app.ability.common';
import Want from '@ohos.app.ability.Want';
import { BusinessError } from '@ohos.base';
import window from '@ohos.window';

let listener: missionManager.MissionListener = {
    onMissionCreated: (mission) => {console.log('--------onMissionCreated-------');},
    onMissionDestroyed: (mission) => {console.log('--------onMissionDestroyed-------');},
    onMissionSnapshotChanged: (mission) => {console.log('--------onMissionSnapshotChanged-------');},
    onMissionMovedToFront: (mission) => {console.log('--------onMissionMovedToFront-------');},
    onMissionIconUpdated: (mission, icon) => {console.log('--------onMissionIconUpdated-------');},
    onMissionClosed: (mission) => {console.log('--------onMissionClosed-------');},
    onMissionLabelUpdated: (mission) => {console.log('--------onMissionLabelUpdated-------');}
};

let listenerId = -1;
let abilityWant: Want;
let context: common.UIAbilityContext;

export default class EntryAbility extends UIAbility {
    onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {
        console.log('[Demo] EntryAbility onCreate');
        abilityWant = want;
        context = this.context;
    }

    onDestroy() {
        try {
            if (listenerId !== -1) {
                missionManager.off('mission', listenerId, (err) => {
                    console.log('$(err.code)');
                });
            }
        } catch (paramError) {
            let code = (paramError as BusinessError).code;
            let message = (paramError as BusinessError).message;
            console.error(`error: ${code}, ${message} `);
        }
        console.log('[Demo] EntryAbility onDestroy');
    }

    onWindowStageCreate(windowStage: window.WindowStage) {
        // Main window is created, set main page for this ability
        console.log('[Demo] EntryAbility onWindowStageCreate');
        try {
            listenerId = missionManager.on('mission', listener);
        } catch (paramError) {
            let code = (paramError as BusinessError).code;
            let message = (paramError as BusinessError).message;
            console.error(`error: ${code}, ${message} `);
        }

        windowStage.loadContent('pages/index', (err: BusinessError, data) => {
            if (err.code) {
                console.error(`Failed to load the content. Cause: ${JSON.stringify(err)}`);
                return;
            }
            console.info(`Succeeded in loading the content. Data: ${JSON.stringify(data)}`);
        });
    }
};

missionManager.off

off(type: 'mission', listenerId: number): Promise<void>;

解注册任务状态监听,以promise方式返回执行结果。

需要权限:ohos.permission.MANAGE_MISSIONS

系统能力:SystemCapability.Ability.AbilityRuntime.Mission

系统API: 此接口为系统接口,三方应用不支持调用。

参数:

参数名类型必填说明
listenerIdnumber系统任务状态监听器的index值,和监听器一一对应,由on方法返回。

返回值:

类型说明
Promise<void>promise方式返回执行结果。

错误码

错误码ID错误信息
16300002Input error. The specified mission listener does not exist.

以上错误码详细介绍请参考errcode-ability

示例:

import missionManager from '@ohos.app.ability.missionManager';
import UIAbility from '@ohos.app.ability.UIAbility';
import AbilityConstant from '@ohos.app.ability.AbilityConstant';
import common from '@ohos.app.ability.common';
import Want from '@ohos.app.ability.Want';
import { BusinessError } from '@ohos.base';
import window from '@ohos.window';

let listener: missionManager.MissionListener = {
    onMissionCreated: (mission) => {console.log('--------onMissionCreated-------');},
    onMissionDestroyed: (mission) => {console.log('--------onMissionDestroyed-------');},
    onMissionSnapshotChanged: (mission) => {console.log('--------onMissionSnapshotChanged-------');},
    onMissionMovedToFront: (mission) => {console.log('--------onMissionMovedToFront-------');},
    onMissionIconUpdated: (mission, icon) => {console.log('--------onMissionIconUpdated-------');},
    onMissionClosed: (mission) => {console.log('--------onMissionClosed-------');},
    onMissionLabelUpdated: (mission) => {console.log('--------onMissionLabelUpdated-------');}
};

let listenerId = -1;
let abilityWant: Want;
let context: common.UIAbilityContext;

export default class EntryAbility extends UIAbility {
    onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {
        console.log('[Demo] EntryAbility onCreate');
        abilityWant = want;
        context = this.context;
    }

    onDestroy() {
        try {
            if (listenerId !== -1) {
                missionManager.off('mission', listenerId).catch((err: BusinessError) => {
                    console.log('$(err.code)');
                });
            }
        } catch (paramError) {
            let code = (paramError as BusinessError).code;
            let message = (paramError as BusinessError).message;
            console.error(`error: ${code}, ${message} `);
        }
        console.log('[Demo] EntryAbility onDestroy');
    }

    onWindowStageCreate(windowStage: window.WindowStage) {
        // Main window is created, set main page for this ability
        console.log('[Demo] EntryAbility onWindowStageCreate');
        try {
            listenerId = missionManager.on('mission', listener);
        } catch (paramError) {
            let code = (paramError as BusinessError).code;
            let message = (paramError as BusinessError).message;
            console.error(`error: ${code}, ${message} `);
        }

        windowStage.loadContent('pages/index', (err: BusinessError, data) => {
            if (err.code) {
                console.error(`Failed to load the content. Cause: ${JSON.stringify(err)}`);
                return;
            }
            console.info(`Succeeded in loading the content. Data: ${JSON.stringify(data)}`);
        });
    }
};

missionManager.getMissionInfo

getMissionInfo(deviceId: string, missionId: number, callback: AsyncCallback<MissionInfo>): void;

获取任务信息,以异步回调的方式返回任务信息。

需要权限:ohos.permission.MANAGE_MISSIONS

系统能力:SystemCapability.Ability.AbilityRuntime.Mission

系统API: 此接口为系统接口,三方应用不支持调用。

参数:

参数名类型必填说明
deviceIdstring设备ID,本机默认为空字符串。
missionIdnumber任务ID。
callbackAsyncCallback<MissionInfo>执行结果回调函数,返回任务信息。

示例:

  import missionManager from '@ohos.app.ability.missionManager';
  import { BusinessError } from '@ohos.base';

  let testMissionId = 1;

  missionManager.getMissionInfos('',10)
  .then((allMissions) => {
      try {
      if (allMissions && allMissions.length > 0) {
          testMissionId = allMissions[0].missionId;
      }

      missionManager.getMissionInfo('', testMissionId, (error, mission) => {
          if (error) {
          console.error('getMissionInfo failed, error.code: ${error.code}, error.message: ${error.message}');
          } else {
          console.log('mission.missionId = ${mission.missionId}');
          console.log('mission.runningState = ${mission.runningState}');
          console.log('mission.lockedState = ${mission.lockedState}');
          console.log('mission.timestamp = ${mission.timestamp}');
          console.log('mission.label = ${mission.label}');
          console.log('mission.iconPath = ${mission.iconPath}');
          }
      });
      } catch (paramError) {
          let code = (paramError as BusinessError).code;
          let message = (paramError as BusinessError).message;
          console.error(`error: ${code}, ${message} `);
      }
  })
  .catch((err: BusinessError) => {console.log('$(err.code)');});

missionManager.getMissionInfo

getMissionInfo(deviceId: string, missionId: number): Promise<MissionInfo>;

获取任务信息,以promise方式返回任务信息。

需要权限:ohos.permission.MANAGE_MISSIONS

系统能力:SystemCapability.Ability.AbilityRuntime.Mission

系统API: 此接口为系统接口,三方应用不支持调用。

参数:

参数名类型必填说明
deviceIdstring设备ID,本机默认为空字符串。
missionIdnumber任务ID。

返回值:

类型说明
Promise<MissionInfo>任务信息。

示例:

import missionManager from '@ohos.app.ability.missionManager';
import { BusinessError } from '@ohos.base';

let testMissionId = 1;
try {
    missionManager.getMissionInfo('', testMissionId).then((data) => {
        console.info(`getMissionInfo successfully. Data: ${JSON.stringify(data)}`);
    }).catch((error: BusinessError) => {
        console.error(`getMissionInfo failed. Cause: ${error.message}`);
    });
} catch (error) {
    console.error(`getMissionInfo failed. Cause: ${error.message}`);
}

missionManager.getMissionInfos

getMissionInfos(deviceId: string, numMax: number, callback: AsyncCallback<Array<MissionInfo>>): void;

获取所有任务信息,以回调函数的方式返回任务信息数组。

需要权限:ohos.permission.MANAGE_MISSIONS

系统能力:SystemCapability.Ability.AbilityRuntime.Mission

系统API: 此接口为系统接口,三方应用不支持调用。

参数:

参数名类型必填说明
deviceIdstring设备ID,本机默认为空字符串。
numMaxnumber任务信息数量上限。
callbackAsyncCallback<Array<MissionInfo>>执行结果回调函数,返回任务信息数组。

示例:

import missionManager from '@ohos.app.ability.missionManager';
import { BusinessError } from '@ohos.base';

try {
  missionManager.getMissionInfos('', 10, (error, missions) => {
    if (error) {
        console.error(`getMissionInfos failed, error.code: ${error.code}, error.message: ${error.message}`);
    } else {
      console.log(`size = ${missions.length}`);
      console.log(`missions = ${JSON.stringify(missions)}`);
    }
  });
} catch (paramError) {
      let code = (paramError as BusinessError).code;
      let message = (paramError as BusinessError).message;
      console.error(`error: ${code}, ${message} `);
}

missionManager.getMissionInfos

getMissionInfos(deviceId: string, numMax: number): Promise<Array<MissionInfo>>;

获取所有任务信息,以promise的方式返回任务信息数组。

需要权限:ohos.permission.MANAGE_MISSIONS

系统能力:SystemCapability.Ability.AbilityRuntime.Mission

系统API: 此接口为系统接口,三方应用不支持调用。

参数:

参数名类型必填说明
deviceIdstring设备ID,本机默认为空字符串。
numMaxnumber任务信息数量上限。

返回值:

类型说明
Promise<Array<MissionInfo>>任务信息数组。

示例:

import missionManager from '@ohos.app.ability.missionManager';
import { BusinessError } from '@ohos.base';

try {
    missionManager.getMissionInfos('', 10).then((data) => {
        console.info('getMissionInfos successfully. Data: ${JSON.stringify(data)}');
    }).catch((error: BusinessError) => {
        console.error('getMissionInfos failed. Cause: ${error.message}');
    });
} catch (error) {
    console.error('getMissionInfos failed. Cause: ${error.message}');
}

missionManager.getMissionSnapShot

getMissionSnapShot(deviceId: string, missionId: number, callback: AsyncCallback<MissionSnapshot>): void;

获取任务快照,以回调函数的方式返回快照内容。

需要权限:ohos.permission.MANAGE_MISSIONS

系统能力:SystemCapability.Ability.AbilityRuntime.Mission

系统API: 此接口为系统接口,三方应用不支持调用。

参数:

参数名类型必填说明
deviceIdstring设备ID,本机默认为空字符串。
missionIdnumber任务ID。
callbackAsyncCallback<MissionSnapshot>执行结果回调函数,返回任务快照信息。

示例:

import missionManager from '@ohos.app.ability.missionManager';

let testMissionId = 2;
try {
    missionManager.getMissionSnapShot('', testMissionId, (err, data) => {
        if (err) {
            console.error(`getMissionSnapShot failed: ${err.message}`);
        } else {
            console.info(`getMissionSnapShot successfully: ${JSON.stringify(data)}`);
        }
    });
} catch (err) {
    console.error(`getMissionSnapShot failed: ${err.message}`);
}

missionManager.getMissionSnapShot

getMissionSnapShot(deviceId: string, missionId: number): Promise<MissionSnapshot>;

获取任务快照,以promise的方式返回快照内容。

需要权限:ohos.permission.MANAGE_MISSIONS

系统能力:SystemCapability.Ability.AbilityRuntime.Mission

系统API: 此接口为系统接口,三方应用不支持调用。

参数:

参数名类型必填说明
deviceIdstring设备ID,本机默认为空字符串。
missionIdnumber任务ID。

返回值:

类型说明
Promise<MissionSnapshot>任务快照信息。

示例:

import missionManager from '@ohos.app.ability.missionManager';
import { BusinessError } from '@ohos.base';

let testMissionId = 2;
try {
    missionManager.getMissionSnapShot('', testMissionId).then((data) => {
        console.info(`getMissionSnapShot successfully. Data: ${JSON.stringify(data)}`);
    }).catch((error: BusinessError) => {
        console.error(`getMissionSnapShot failed. Cause: ${error.message}`);
    });
} catch (error) {
    console.error(`getMissionSnapShot failed. Cause: ${error.message}`);
}

missionManager.getLowResolutionMissionSnapShot

getLowResolutionMissionSnapShot(deviceId: string, missionId: number, callback: AsyncCallback<MissionSnapshot>): void;

获取任务低分辨率快照。

需要权限:ohos.permission.MANAGE_MISSIONS

系统能力:SystemCapability.Ability.AbilityRuntime.Mission

系统API: 此接口为系统接口,三方应用不支持调用。

参数:

参数名类型必填说明
deviceIdstring设备ID,本机默认为空字符串。
missionIdnumber任务ID。
callbackAsyncCallback<MissionSnapshot>执行结果回调函数,返回任务快照信息。

示例:

import missionManager from '@ohos.app.ability.missionManager';

let testMissionId = 2;
try {
    missionManager.getLowResolutionMissionSnapShot('', testMissionId, (err, data) => {
        if (err) {
            console.error(`getLowResolutionMissionSnapShot failed: ${err.message}`);
        } else {
            console.info(`getLowResolutionMissionSnapShot successfully: ${JSON.stringify(data)}`);
        }
    });
} catch (err) {
    console.error(`getLowResolutionMissionSnapShot failed: ${err.message}`);
}

missionManager.getLowResolutionMissionSnapShot

getLowResolutionMissionSnapShot(deviceId: string, missionId: number): Promise<MissionSnapshot>;

获取任务低分辨率快照。

需要权限:ohos.permission.MANAGE_MISSIONS

系统能力:SystemCapability.Ability.AbilityRuntime.Mission

系统API: 此接口为系统接口,三方应用不支持调用。

参数:

参数名类型必填说明
deviceIdstring设备ID,本机默认为空字符串。
missionIdnumber任务ID。

返回值:

类型说明
Promise<MissionSnapshot>任务快照信息。

示例:

import missionManager from '@ohos.app.ability.missionManager';
import { BusinessError } from '@ohos.base';

let testMissionId = 2;
try {
    missionManager.getLowResolutionMissionSnapShot('', testMissionId).then((data) => {
        console.info(`getLowResolutionMissionSnapShot successfully. Data: ${JSON.stringify(data)}`);
    }).catch((error: BusinessError) => {
        console.error(`getLowResolutionMissionSnapShot failed. Cause: ${error.message}`);
    });
} catch (error) {
    console.error(`getLowResolutionMissionSnapShot failed. Cause: ${error.message}`);
}

missionManager.lockMission

lockMission(missionId: number, callback: AsyncCallback<void>): void;

锁定指定任务id的任务,以回调函数的方式返回。

需要权限:ohos.permission.MANAGE_MISSIONS

系统能力:SystemCapability.Ability.AbilityRuntime.Mission

系统API: 此接口为系统接口,三方应用不支持调用。

参数:

参数名类型必填说明
missionIdnumber任务ID。
callbackAsyncCallback<void>执行结果回调函数。

错误码

错误码ID错误信息
16300001Mission not found.

以上错误码详细介绍请参考errcode-ability

示例:

import missionManager from '@ohos.app.ability.missionManager';

let testMissionId = 2;
try {
    missionManager.lockMission(testMissionId, (err, data) => {
        if (err) {
            console.error(`lockMission failed: ${err.message}`);
        } else {
            console.info(`lockMission successfully: ${JSON.stringify(data)}`);
        }
    });
} catch (err) {
    console.error(`lockMission failed: ${err.message}`);
}

missionManager.lockMission

lockMission(missionId: number): Promise<void>;

锁定指定任务id的任务,以promise方式返回。

需要权限:ohos.permission.MANAGE_MISSIONS

系统能力:SystemCapability.Ability.AbilityRuntime.Mission

系统API: 此接口为系统接口,三方应用不支持调用。

参数:

参数名类型必填说明
missionIdnumber任务ID。

返回值:

类型说明
Promise<void>promise方式返回执行结果。

错误码

错误码ID错误信息
16300001Mission not found.

以上错误码详细介绍请参考errcode-ability

示例:

import missionManager from '@ohos.app.ability.missionManager';
import { BusinessError } from '@ohos.base';

let testMissionId = 2;
try {
    missionManager.lockMission(testMissionId).then((data) => {
        console.info(`lockMission successfully. Data: ${JSON.stringify(data)}`);
    }).catch((error: BusinessError) => {
        console.error(`lockMission failed. Cause: ${error.message}`);
    });
} catch (error) {
    console.error(`lockMission failed. Cause: ${error.message}`);
}

missionManager.unlockMission

unlockMission(missionId: number, callback: AsyncCallback<void>): void;

解锁指定任务id的任务,以回调函数的方式返回。

需要权限:ohos.permission.MANAGE_MISSIONS

系统能力:SystemCapability.Ability.AbilityRuntime.Mission

系统API: 此接口为系统接口,三方应用不支持调用。

参数:

参数名类型必填说明
missionIdnumber任务ID。
callbackAsyncCallback<void>执行结果回调函数。

错误码

错误码ID错误信息
16300001Mission not found.

以上错误码详细介绍请参考errcode-ability

示例:

import missionManager from '@ohos.app.ability.missionManager';

let testMissionId = 2;
try {
    missionManager.unlockMission(testMissionId, (err, data) => {
        if (err) {
            console.error(`unlockMission failed: ${err.message}`);
        } else {
            console.info(`unlockMission successfully: ${JSON.stringify(data)}`);
        }
    });
} catch (err) {
    console.error(`unlockMission failed: ${err.message}`);
}

missionManager.unlockMission

unlockMission(missionId: number): Promise<void>;

解锁指定任务id的任务,以promise的方式返回。

需要权限:ohos.permission.MANAGE_MISSIONS

系统能力:SystemCapability.Ability.AbilityRuntime.Mission

系统API: 此接口为系统接口,三方应用不支持调用。

参数:

参数名类型必填说明
missionIdnumber任务ID。

返回值:

类型说明
Promise<void>promise方式返回执行结果。

错误码

错误码ID错误信息
16300001Mission not found.

以上错误码详细介绍请参考errcode-ability

示例:

import missionManager from '@ohos.app.ability.missionManager';
import { BusinessError } from '@ohos.base';

let testMissionId = 2;
try {
    missionManager.unlockMission(testMissionId).then((data) => {
        console.info(`unlockMission successfully. Data: ${JSON.stringify(data)}`);
    }).catch((error: BusinessError) => {
        console.error(`unlockMission failed. Cause: ${error.message}`);
    });
} catch (error) {
    console.error(`unlockMission failed. Cause: ${error.message}`);
}

missionManager.clearMission

clearMission(missionId: number, callback: AsyncCallback<void>): void;

清理指定任务id的任务,无论该任务是否被锁定,以回调函数的方式返回。

需要权限:ohos.permission.MANAGE_MISSIONS

系统能力:SystemCapability.Ability.AbilityRuntime.Mission

系统API: 此接口为系统接口,三方应用不支持调用。

参数:

参数名类型必填说明
missionIdnumber任务ID。
callbackAsyncCallback<void>执行结果回调函数。

示例:

import missionManager from '@ohos.app.ability.missionManager';

let testMissionId = 2;
try {
    missionManager.clearMission(testMissionId, (err, data) => {
        if (err) {
            console.error(`clearMission failed: ${err.message}`);
        } else {
            console.info(`clearMission successfully: ${JSON.stringify(data)}`);
        }
    });
} catch (err) {
    console.error(`clearMission failed: ${err.message}`);
}

missionManager.clearMission

clearMission(missionId: number): Promise<void>;

清理指定任务id的任务,无论该任务是否被锁定,以promise的方式返回。

需要权限:ohos.permission.MANAGE_MISSIONS

系统能力:SystemCapability.Ability.AbilityRuntime.Mission

系统API: 此接口为系统接口,三方应用不支持调用。

参数:

参数名类型必填说明
missionIdnumber任务ID。

返回值:

类型说明
Promise<void>promise方式返回执行结果。

示例:

import missionManager from '@ohos.app.ability.missionManager';
import { BusinessError } from '@ohos.base';

let testMissionId = 2;
try {
    missionManager.clearMission(testMissionId).then((data) => {
        console.info(`clearMission successfully. Data: ${JSON.stringify(data)}`);
    }).catch((error: BusinessError) => {
        console.error(`clearMission failed. Cause: ${error.message}`);
    });
} catch (error) {
    console.error(`clearMission failed. Cause: ${error.message}`);
}

missionManager.clearAllMissions

clearAllMissions(callback: AsyncCallback<void>): void;

清理所有未锁定的任务,以回调函数的方式返回。

需要权限:ohos.permission.MANAGE_MISSIONS

系统能力:SystemCapability.Ability.AbilityRuntime.Mission

系统API: 此接口为系统接口,三方应用不支持调用。

示例:

import missionManager from '@ohos.app.ability.missionManager';

try {
    missionManager.clearAllMissions(err => {
        if (err) {
            console.error('clearAllMissions failed: ${err.message}');
        } else {
            console.info('clearAllMissions successfully.');
        }
    });
} catch (err) {
    console.error('clearAllMissions failed: ${err.message}');
}

missionManager.clearAllMissions

clearAllMissions(): Promise<void>;

清理所有未锁定的任务,以promise的方式返回。

需要权限:ohos.permission.MANAGE_MISSIONS

系统能力:SystemCapability.Ability.AbilityRuntime.Mission

系统API: 此接口为系统接口,三方应用不支持调用。

返回值:

类型说明
Promise<void>promise方式返回执行结果。

示例:

import missionManager from '@ohos.app.ability.missionManager';
import { BusinessError } from '@ohos.base';

try {
    missionManager.clearAllMissions().then((data) => {
        console.info(`clearAllMissions successfully. Data: ${JSON.stringify(data)}`);
    }).catch((err: BusinessError) => {
        console.error(`clearAllMissions failed: ${err.message}`);
    });
} catch (err) {
    console.error(`clearAllMissions failed: ${err.message}`);
}

missionManager.moveMissionToFront

moveMissionToFront(missionId: number, callback: AsyncCallback<void>): void;

把指定任务id的任务切到前台,以回调函数的方式返回。

需要权限:ohos.permission.MANAGE_MISSIONS

系统能力:SystemCapability.Ability.AbilityRuntime.Mission

系统API: 此接口为系统接口,三方应用不支持调用。

参数:

参数名类型必填说明
missionIdnumber任务ID。
callbackAsyncCallback<void>执行结果回调函数。

错误码

错误码ID错误信息
16000009An ability cannot be started or stopped in Wukong mode.

以上错误码详细介绍请参考errcode-ability

示例:

import missionManager from '@ohos.app.ability.missionManager';

let testMissionId = 2;
try {
    missionManager.moveMissionToFront(testMissionId, (err, data) => {
        if (err) {
            console.error(`moveMissionToFront failed: ${err.message}`);
        } else {
            console.info(`moveMissionToFront successfully: ${JSON.stringify(data)}`);
        }
    });
} catch (err) {
    console.error(`moveMissionToFront failed: ${err.message}`);
}

missionManager.moveMissionToFront

moveMissionToFront(missionId: number, options: StartOptions, callback: AsyncCallback<void>): void;

把指定任务id的任务切到前台,同时指定任务切换到前台时的启动参数,例如窗口模式、设备ID等,以回调函数的方式返回。

需要权限:ohos.permission.MANAGE_MISSIONS

系统能力:SystemCapability.Ability.AbilityRuntime.Mission

系统API: 此接口为系统接口,三方应用不支持调用。

参数:

参数名类型必填说明
missionIdnumber任务ID。
optionsStartOptions启动参数选项,用于指定任务切到前台时的窗口模式,设备ID等。
callbackAsyncCallback<void>执行结果回调函数。

错误码

错误码ID错误信息
16000009An ability cannot be started or stopped in Wukong mode.

以上错误码详细介绍请参考errcode-ability

示例:

import missionManager from '@ohos.app.ability.missionManager';

let testMissionId = 2;
try {
    missionManager.moveMissionToFront(testMissionId, {windowMode : 101}, (err, data) => {
        if (err) {
            console.error(`moveMissionToFront failed: ${err.message}`);
        } else {
            console.info(`moveMissionToFront successfully: ${JSON.stringify(data)}`);
        }
    });
} catch (err) {
    console.error(`moveMissionToFront failed: ${err.message}`);
}

missionManager.moveMissionToFront

moveMissionToFront(missionId: number, options?: StartOptions): Promise<void>;

把指定任务id的任务切到前台,同时指定任务切换到前台时的启动参数,例如窗口模式、设备ID等,以promise的方式返回。

需要权限:ohos.permission.MANAGE_MISSIONS

系统能力:SystemCapability.Ability.AbilityRuntime.Mission

系统API: 此接口为系统接口,三方应用不支持调用。

参数:

参数名类型必填说明
missionIdnumber任务ID。
optionsStartOptions启动参数选项,用于指定任务切到前台时的窗口模式,设备ID等。默认为空,表示按照默认启动参数。

返回值:

类型说明
Promise<void>promise方式返回执行结果。

错误码

错误码ID错误信息
16000009An ability cannot be started or stopped in Wukong mode.

以上错误码详细介绍请参考errcode-ability

示例:

import missionManager from '@ohos.app.ability.missionManager';
import { BusinessError } from '@ohos.base';

let testMissionId = 2;
try {
    missionManager.moveMissionToFront(testMissionId).then((data) => {
        console.info(`moveMissionToFront successfully. Data: ${JSON.stringify(data)}`);
    }).catch((error: BusinessError) => {
        console.error(`moveMissionToFront failed. Cause: ${error.message}`);
    });
} catch (error) {
    console.error(`moveMissionToFront failed. Cause: ${error.message}`);
}

missionManager.moveMissionsToForeground10+

moveMissionsToForeground(missionIds: Array<number>, callback: AsyncCallback<void>): void;

将指定任务批量切到前台,以回调函数的方式返回。

需要权限:ohos.permission.MANAGE_MISSIONS

系统能力:SystemCapability.Ability.AbilityRuntime.Mission

系统接口: 此接口为系统接口。

参数:

参数名类型必填说明
missionIdsArray<number>任务ID数组。
callbackAsyncCallback<void>执行结果回调函数。

错误码

以下错误码的详细介绍请参见errcode-ability

错误码ID错误信息
16000050Internal error.

示例:

import abilityManager from '@ohos.app.ability.abilityManager';
import missionManager from '@ohos.app.ability.missionManager';
import { BusinessError } from '@ohos.base';

try {
    missionManager.getMissionInfos("", 10, (error, missionInfos) => {
        if (error.code) {
            console.log("getMissionInfos failed, error.code:" + JSON.stringify(error.code));
            return;
        }
        if (missionInfos.length < 1) {
            return;
        }

        let toShows = new Array<number>();
        for (let missionInfo of missionInfos) {
            if (missionInfo.abilityState == abilityManager.AbilityState.BACKGROUND) {
                toShows.push(missionInfo.missionId);
            }
        }
        missionManager.moveMissionsToForeground(toShows, (err, data) => {
            if (err) {
                console.error(`moveMissionsToForeground failed: ${err.message}`);
            } else {
                console.info(`moveMissionsToForeground successfully: ${JSON.stringify(data)}`);
            }
        });
    });
} catch (paramError) {
    let code = (paramError as BusinessError).code;
    let message = (paramError as BusinessError).message;
    console.error(`error: ${code}, ${message} `);
}

missionManager.moveMissionsToForeground10+

moveMissionsToForeground(missionIds: Array<number>, topMission: number, callback: AsyncCallback<void>): void;

将指定任务批量切换到前台,并将任务ID等于topMission的任务移动到最顶层,以回调函数的方式返回。

需要权限:ohos.permission.MANAGE_MISSIONS

系统能力:SystemCapability.Ability.AbilityRuntime.Mission

系统接口: 此接口为系统接口。

参数:

参数名类型必填说明
missionIdsArray<number>任务ID数组。
topMissionnumber待移动到最顶层的任务ID
callbackAsyncCallback<void>执行结果回调函数。

错误码

以下错误码的详细介绍请参见errcode-ability

错误码ID错误信息
16000050Internal error.

示例:

import abilityManager from '@ohos.app.ability.abilityManager';
import missionManager from '@ohos.app.ability.missionManager';
import { BusinessError } from '@ohos.base';

try {
    missionManager.getMissionInfos("", 10, (error, missionInfos) => {
        if (error.code) {
            console.log("getMissionInfos failed, error.code:" + JSON.stringify(error.code));
            return;
        }
        if (missionInfos.length < 1) {
            return;
        }

        let toShows = new Array<number>();
        for (let missionInfo of missionInfos) {
            if (missionInfo.abilityState == abilityManager.AbilityState.BACKGROUND) {
                toShows.push(missionInfo.missionId);
            }
        }
        missionManager.moveMissionsToForeground(toShows, toShows[0], (err, data) => {
            if (err) {
                console.error(`moveMissionsToForeground failed: ${err.message}`);
            } else {
                console.info(`moveMissionsToForeground successfully: ${JSON.stringify(data)}`);
            }
        });
    });
} catch (paramError) {
    let code = (paramError as BusinessError).code;
    let message = (paramError as BusinessError).message;
    console.error(`error: ${code}, ${message} `);
}

missionManager.moveMissionsToForeground10+

moveMissionsToForeground(missionIds: Array<number>, topMission?: number): Promise<void>;

将指定任务批量切到前台,并将任务ID等于topMission的任务移动到最顶层,以promise的方式返回。

需要权限:ohos.permission.MANAGE_MISSIONS

系统能力:SystemCapability.Ability.AbilityRuntime.Mission

系统接口: 此接口为系统接口。

参数:

参数名类型必填说明
missionIdsArray<number>任务ID数组。
topMissionnumber待移动到最顶层的任务ID。默认值为-1,表示将默认任务移动到最顶层。

返回值:

类型说明
Promise<void>promise方式返回执行结果。

错误码

以下错误码的详细介绍请参见errcode-ability

错误码ID错误信息
16000050Internal error.

示例:

import abilityManager from '@ohos.app.ability.abilityManager';
import missionManager from '@ohos.app.ability.missionManager';
import { BusinessError } from '@ohos.base';

try {
    missionManager.getMissionInfos("", 10, (error, missionInfos) => {
        if (error.code) {
            console.log("getMissionInfos failed, error.code:" + JSON.stringify(error.code));
            return;
        }
        if (missionInfos.length < 1) {
            return;
        }

        let toShows = new Array<number>();
        for (let missionInfo of missionInfos) {
            if (missionInfo.abilityState == abilityManager.AbilityState.BACKGROUND) {
                toShows.push(missionInfo.missionId);
            }
        }
        missionManager.moveMissionsToForeground(toShows, toShows[0]).then(() => {
            console.log("moveMissionsToForeground is called" );
        });
    });
} catch (paramError) {
    let code = (paramError as BusinessError).code;
    let message = (paramError as BusinessError).message;
    console.error(`error: ${code}, ${message} `);
}

missionManager.moveMissionsToBackground10+

moveMissionsToBackground(missionIds: Array<number>, callback: AsyncCallback<Array<number>>): void;

将指定任务批量切到后台,以回调函数的方式返回, 返回的结果任务ID按被隐藏时的任务层级排序。

需要权限:ohos.permission.MANAGE_MISSIONS

系统能力:SystemCapability.Ability.AbilityRuntime.Mission

系统接口: 此接口为系统接口。

参数:

参数名类型必填说明
missionIdsArray<number>任务ID数组。
callbackAsyncCallback<Array<number>>执行结果回调函数。

错误码

以下错误码的详细介绍请参见errcode-ability

错误码ID错误信息
16000050Internal error.

示例:

import abilityManager from '@ohos.app.ability.abilityManager';
import missionManager from '@ohos.app.ability.missionManager';
import { BusinessError } from '@ohos.base';

try {
    missionManager.getMissionInfos("", 10, (error, missionInfos) => {
        if (error.code) {
            console.log("getMissionInfos failed, error.code:" + JSON.stringify(error.code));
            return;
        }

        let toHides = new Array<number>();
        for (let missionInfo of missionInfos) {
            if (missionInfo.abilityState ==  abilityManager.AbilityState.FOREGROUND) {
            toHides.push(missionInfo.missionId);
            }
        }
        missionManager.moveMissionsToBackground(toHides, (err, data) => {
            if (err) {
                console.error(`moveMissionsToBackground failed: ${err.message}`);
            } else {
                console.info(`moveMissionsToBackground successfully: ${JSON.stringify(data)}`);
            }
        });
    });
} catch (paramError) {
    let code = (paramError as BusinessError).code;
    let message = (paramError as BusinessError).message;
    console.error(`error: ${code}, ${message} `);
}

missionManager.moveMissionsToBackground10+

moveMissionsToBackground(missionIds : Array<number>): Promise<Array<number>>;

将指定任务批量切到后台,以promise的方式返回, 返回的结果按被隐藏时的任务层级排序。

需要权限:ohos.permission.MANAGE_MISSIONS

系统能力:SystemCapability.Ability.AbilityRuntime.Mission

系统接口: 此接口为系统接口。

参数:

参数名类型必填说明
missionIdsArray<number>任务ID数组。

返回值:

类型说明
Promise<Array<number>>promise方式返回执行结果。

错误码

以下错误码的详细介绍请参见errcode-ability

错误码ID错误信息
16000050Internal error.

示例:

import abilityManager from '@ohos.app.ability.abilityManager';
import missionManager from '@ohos.app.ability.missionManager';
import { BusinessError } from '@ohos.base';

try {
    missionManager.getMissionInfos("", 10, (error, missionInfos) => {
        if (error.code) {
            console.log("getMissionInfos failed, error.code:" + JSON.stringify(error.code));
            return;
        }

        let toHides = new Array<number>();
        for (let missionInfo of missionInfos) {
            if (missionInfo.abilityState ==  abilityManager.AbilityState.FOREGROUND) {
            toHides.push(missionInfo.missionId);
            }
        }
        missionManager.moveMissionsToBackground(toHides).then((hideRes) => {
            console.log("moveMissionsToBackground is called, res: "+ JSON.stringify(hideRes));
        });
    });
} catch (paramError) {
    let code = (paramError as BusinessError).code;
    let message = (paramError as BusinessError).message;
    console.error(`error: ${code}, ${message} `);
}

你可能感兴趣的鸿蒙文章

harmony 鸿蒙接口

harmony 鸿蒙系统公共事件定义(待停用)

harmony 鸿蒙系统公共事件定义

harmony 鸿蒙开发说明

harmony 鸿蒙企业设备管理概述(仅对系统应用开放)

harmony 鸿蒙BundleStatusCallback

harmony 鸿蒙@ohos.bundle.innerBundleManager (innerBundleManager模块)

harmony 鸿蒙@ohos.distributedBundle (分布式包管理)

harmony 鸿蒙@ohos.bundle (Bundle模块)

harmony 鸿蒙@ohos.enterprise.EnterpriseAdminExtensionAbility (企业设备管理扩展能力)

  • 所属分类: 后端技术
  • 本文标签: 鸿蒙 软件
  • 版权声明: 本文链接 https://seaxiang.com/blog/0f02ca1cf2bd4330a1d76df8ca3f4627