@ohos.application.missionManager (missionManager)

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

说明:

本模块首批接口从API version 8开始支持,从API version 9废弃,替换模块为@ohos.app.ability.missionManager。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import missionManager from '@ohos.application.missionManager';

权限列表

ohos.permission.MANAGE_MISSIONS

missionManager.registerMissionListener

registerMissionListener(listener: MissionListener): number

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

需要权限:ohos.permission.MANAGE_MISSIONS

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

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

参数:

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

返回值:

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

示例:

import missionManager from '@ohos.application.missionManager';

console.log('registerMissionListener');
let listenerid = missionManager.registerMissionListener({
  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-------');}
});

missionManager.unregisterMissionListener

unregisterMissionListener(listenerId: number, callback: AsyncCallback<void>): void

解注册任务状态监听器。

需要权限:ohos.permission.MANAGE_MISSIONS

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

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

参数:

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

示例:

  import missionManager from '@ohos.application.missionManager';

  console.log('registerMissionListener');
  let listenerid = missionManager.registerMissionListener({
    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-------');}
  });

  missionManager.unregisterMissionListener(listenerid, (error) => {
      console.error('unregisterMissionListener fail, error: ${error}');
  });

missionManager.unregisterMissionListener

unregisterMissionListener(listenerId: number): Promise<void>

反注册任务状态监听器。使用Promise异步回调。

需要权限:ohos.permission.MANAGE_MISSIONS

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

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

参数:

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

返回值:

类型 说明
Promise<void> Promise对象。无返回结果的Promise对象。

示例:

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

  console.log('registerMissionListener');
  let listenerid = missionManager.registerMissionListener({
    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-------');}
  });

  missionManager.unregisterMissionListener(listenerid).catch((error: BusinessError) => {
      console.error('unregisterMissionListener fail, error: ${error}');
  });

missionManager.getMissionInfo

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

获取单个任务信息。使用callback异步回调。

需要权限:ohos.permission.MANAGE_MISSIONS

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

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

参数:

参数名 类型 必填 说明
deviceId string 设备ID,本机默认为空字符串。
missionId number 任务ID。
callback AsyncCallback<MissionInfo> 回调函数,返回任务信息。

示例:

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

let allMissions=missionManager.getMissionInfos('',10).catch((err: BusinessError) => {
  console.log(`${err}`);});
missionManager.getMissionInfo('', allMissions[0].missionId, (error, mission) => {
  if (error.code) {
    console.error(`getMissionInfo failed, error.code: ${error.code}, error.message: ${error.message}`);
    return;
  }

  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}`);
});

missionManager.getMissionInfo

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

获取单个任务信息。使用Promise异步回调。

需要权限:ohos.permission.MANAGE_MISSIONS

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

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

参数:

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

返回值:

类型 说明
Promise<MissionInfo> Promise对象,返回任务信息。

示例:

import missionManager from '@ohos.application.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

获取所有任务信息。使用callback异步回调。

需要权限:ohos.permission.MANAGE_MISSIONS

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

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

参数:

参数名 类型 必填 说明
deviceId string 设备ID,本机默认为空字符串。
numMax number 任务信息数量上限。
callback AsyncCallback<Array<MissionInfo>> 回调函数,返回任务信息数组。

示例:

import missionManager from '@ohos.application.missionManager';

missionManager.getMissionInfos('', 10, (error, missions) => {
    if (error.code) {
        console.error(`getMissionInfos failed, error.code: ${error.code}, error.message: ${error.message}`);
        return;
    }
    console.log(`size = ${missions.length}`);
    console.log(`missions = ${JSON.stringify(missions)}`);
});

missionManager.getMissionInfos

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

获取所有任务信息。使用Promise异步回调。

需要权限:ohos.permission.MANAGE_MISSIONS

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

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

参数:

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

返回值:

类型 说明
Promise<Array<MissionInfo>> Promise对象,返回任务信息数组。

示例:

import missionManager from '@ohos.application.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

获取任务快照。使用callback异步回调。

需要权限:ohos.permission.MANAGE_MISSIONS

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

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

参数:

参数名 类型 必填 说明
deviceId string 设备ID,本机默认为空字符串。
missionId number 任务ID。
callback AsyncCallback<MissionSnapshot> 回调函数,返回任务快照信息。

示例:

import missionManager from '@ohos.application.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

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

参数:

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

返回值:

类型 说明
Promise<MissionSnapshot> Promise对象,返回任务快照信息。

示例:

import missionManager from '@ohos.application.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.lockMission

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

锁定指定任务id的任务。使用callback异步回调。

需要权限:ohos.permission.MANAGE_MISSIONS

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

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

参数:

参数名 类型 必填 说明
missionId number 任务ID。
callback AsyncCallback<void> 回调函数,当锁定指定任务id的任务成功,err为undefined,否则为错误对象。

示例:

import missionManager from '@ohos.application.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

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

参数:

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

返回值:

类型 说明
Promise<void> Promise对象。无返回结果的Promise对象。

示例:

import missionManager from '@ohos.application.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的任务。使用callback异步回调。

需要权限:ohos.permission.MANAGE_MISSIONS

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

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

参数:

参数名 类型 必填 说明
missionId number 任务ID。
callback AsyncCallback<void> 回调函数,当解锁指定任务id的任务成功,err为undefined,否则为错误对象。

示例:

import missionManager from '@ohos.application.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

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

参数:

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

返回值:

类型 说明
Promise<void> Promise对象。无返回结果的Promise对象。

示例:

import missionManager from '@ohos.application.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的任务,无论该任务是否被锁定。使用callback异步回调。

需要权限:ohos.permission.MANAGE_MISSIONS

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

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

参数:

参数名 类型 必填 说明
missionId number 任务ID。
callback AsyncCallback<void> 回调函数,当清理指定任务id的任务成功,err为undefined,否则为错误对象。

示例:

import missionManager from '@ohos.application.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

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

参数:

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

返回值:

类型 说明
Promise<void> Promise对象。无返回结果的Promise对象。

示例:

import missionManager from '@ohos.application.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

清理所有未锁定的任务,使用callback异步回调。

需要权限:ohos.permission.MANAGE_MISSIONS

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

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<void> 回调函数,当清理所有未锁定的任务成功,err为undefined,否则为错误对象。

示例:

import missionManager from '@ohos.application.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

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

返回值:

类型 说明
Promise<void> Promise对象。无返回结果的Promise对象。

示例:

import missionManager from '@ohos.application.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的任务切到前台。使用callback异步回调。

需要权限:ohos.permission.MANAGE_MISSIONS

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

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

参数:

参数名 类型 必填 说明
missionId number 任务ID。
callback AsyncCallback<void> 回调函数,当把指定任务id的任务切到前台成功,err为undefined,否则为错误对象。

示例:

import missionManager from '@ohos.application.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等。使用callback异步回调。

需要权限:ohos.permission.MANAGE_MISSIONS

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

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

参数:

参数名 类型 必填 说明
missionId number 任务ID。
options StartOptions 启动参数选项,用于指定任务切到前台时的窗口模式,设备ID等。
callback AsyncCallback<void> 回调函数,当把指定任务id的任务切到前台成功,err为undefined,否则为错误对象。

示例:

import missionManager from '@ohos.application.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

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

参数:

参数名 类型 必填 说明
missionId number 任务ID。
options StartOptions 启动参数选项,用于指定任务切到前台时的窗口模式,设备ID等。

返回值:

类型 说明
Promise<void> Promise对象。无返回结果的Promise对象。

示例:

import missionManager from '@ohos.application.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}`);
}