diff --git a/zh-cn/application-dev/reference/apis/js-apis-app-ability-appManager.md b/zh-cn/application-dev/reference/apis/js-apis-app-ability-appManager.md index 64e8a9c391835497fb41c8850bc0ac0d3ab0849d..bc083f54cecdcdbf13cb790b4d0aaa6a8dde0d8a 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-app-ability-appManager.md +++ b/zh-cn/application-dev/reference/apis/js-apis-app-ability-appManager.md @@ -389,12 +389,16 @@ appManager.isSharedBundleRunning(bundleName, versionCode, (err, data) => { }); ``` -## appManager.on +## appManager.on(type: 'applicationState', observer: ApplicationStateObserver)(deprecated) on(type: 'applicationState', observer: ApplicationStateObserver): number; 注册全部应用程序的状态观测器。 +> **说明:** +> +> 从 API version 9开始支持,从API version 10开始废弃,推荐使用[appManager.on(type: 'applicationStateEvent', observer: ApplicationStateObserver)](#appmanagerontype-applicationstateevent-observer-applicationstateobserver10)。 + **需要权限**:ohos.permission.RUNNING_STATE_OBSERVER **系统能力**:SystemCapability.Ability.AbilityRuntime.Core @@ -452,12 +456,16 @@ try { } ``` -## appManager.on +## appManager.on(type: 'applicationState', observer: ApplicationStateObserver, bundleNameList: Array\)(deprecated) on(type: 'applicationState', observer: ApplicationStateObserver, bundleNameList: Array\): number; 注册指定应用程序的状态观测器。 +> **说明:** +> +> 从 API version 9开始支持,从API version 10开始废弃,推荐使用[appManager.on(type: 'applicationStateEvent', observer: ApplicationStateObserver, bundleNameList: Array\)](#appmanagerontype-applicationstateevent-observer-applicationstateobserver-bundlenamelist-arraystring10)。 + **需要权限**:ohos.permission.RUNNING_STATE_OBSERVER **系统能力**:SystemCapability.Ability.AbilityRuntime.Core @@ -517,12 +525,16 @@ try { } ``` -## appManager.off +## appManager.off(type: 'applicationState', observerId: number, callback: AsyncCallback\)(deprecated) off(type: 'applicationState', observerId: number, callback: AsyncCallback\): void; 取消注册应用程序状态观测器。 +> **说明:** +> +> 从 API version 9开始支持,从API version 10开始废弃,推荐使用[appManager.off(type: 'applicationStateEvent', observerId: number)](#appmanagerofftype-applicationstateevent-observerid-number10)。 + **需要权限**:ohos.permission.RUNNING_STATE_OBSERVER **系统能力**:SystemCapability.Ability.AbilityRuntime.Core @@ -593,12 +605,16 @@ try { } ``` -## appManager.off +## appManager.off(type: 'applicationState', observerId: number)(deprecated) off(type: 'applicationState', observerId: number): Promise\; 取消注册应用程序状态观测器。 +> **说明:** +> +> 从 API version 9开始支持,从API version 10开始废弃,推荐使用[appManager.off(type: 'applicationStateEvent', observerId: number)](#appmanagerofftype-applicationstateevent-observerid-number10)。 + **需要权限**:ohos.permission.RUNNING_STATE_OBSERVER **系统能力**:SystemCapability.Ability.AbilityRuntime.Core @@ -671,6 +687,203 @@ try { } ``` +## appManager.on(type: 'applicationStateEvent', observer: ApplicationStateObserver)10+ + +on(type: 'applicationStateEvent', observer: ApplicationStateObserver): number; + +注册全部应用程序的状态观测器。 + +**需要权限**:ohos.permission.RUNNING_STATE_OBSERVER + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**系统API**:该接口为系统接口,三方应用不支持调用。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| type | string | 是 | 调用接口类型,固定填'applicationStateEvent'字符串。 | +| observer | [ApplicationStateObserver](./js-apis-inner-application-applicationStateObserver.md) | 是 | 应用状态观测器,用于观测应用的生命周期变化。 | + +**返回值:** + +| 类型 | 说明 | +| --- | --- | +| number | 已注册观测器的数字代码,可用于off接口取消注册观测器。| + +**错误码**: + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16000050 | Internal error. | + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 + +**示例:** + +```ts +import appManager from '@ohos.app.ability.appManager'; + +let applicationStateObserver = { + onForegroundApplicationChanged(appStateData) { + console.log(`[appManager] onForegroundApplicationChanged: ${JSON.stringify(appStateData)}`); + }, + onAbilityStateChanged(abilityStateData) { + console.log(`[appManager] onAbilityStateChanged: ${JSON.stringify(abilityStateData)}`); + }, + onProcessCreated(processData) { + console.log(`[appManager] onProcessCreated: ${JSON.stringify(processData)}`); + }, + onProcessDied(processData) { + console.log(`[appManager] onProcessDied: ${JSON.stringify(processData)}`); + }, + onProcessStateChanged(processData) { + console.log(`[appManager] onProcessStateChanged: ${JSON.stringify(processData)}`); + } +}; +try { + const observerId = appManager.on('applicationStateEvent', applicationStateObserver); + console.log(`[appManager] observerCode: ${observerId}`); +} catch (paramError) { + console.error(`[appManager] error: ${paramError.code}, ${paramError.message} `); +} +``` + +## appManager.on(type: 'applicationStateEvent', observer: ApplicationStateObserver, bundleNameList: Array\)10+ + +on(type: 'applicationStateEvent', observer: ApplicationStateObserver, bundleNameList: Array\): number; + +注册指定应用程序的状态观测器。 + +**需要权限**:ohos.permission.RUNNING_STATE_OBSERVER + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**系统API**:该接口为系统接口,三方应用不支持调用。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| type | string | 是 | 调用接口类型,固定填'applicationStateEvent'字符串。 | +| observer | [ApplicationStateObserver](./js-apis-inner-application-applicationStateObserver.md) | 是 | 应用状态观测器,用于观测应用的生命周期变化。 | +| bundleNameList | `Array` | 是 | 表示需要注册监听的bundleName数组。最大值128。 | + +**返回值:** + +| 类型 | 说明 | +| --- | --- | +| number | 已注册观测器的数字代码,可用于off接口注销观测器。| + +**错误码**: + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16000050 | Internal error. | + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 + +**示例:** + +```ts +import appManager from '@ohos.app.ability.appManager'; + +let applicationStateObserver = { + onForegroundApplicationChanged(appStateData) { + console.log(`[appManager] onForegroundApplicationChanged: ${JSON.stringify(appStateData)}`); + }, + onAbilityStateChanged(abilityStateData) { + console.log(`[appManager] onAbilityStateChanged: ${JSON.stringify(abilityStateData)}`); + }, + onProcessCreated(processData) { + console.log(`[appManager] onProcessCreated: ${JSON.stringify(processData)}`); + }, + onProcessDied(processData) { + console.log(`[appManager] onProcessDied: ${JSON.stringify(processData)}`); + }, + onProcessStateChanged(processData) { + console.log(`[appManager] onProcessStateChanged: ${JSON.stringify(processData)}`); + } +}; +let bundleNameList = ['bundleName1', 'bundleName2']; +try { + const observerId = appManager.on('applicationStateEvent', applicationStateObserver, bundleNameList); + console.log(`[appManager] observerCode: ${observerId}`); +} catch (paramError) { + console.error(`[appManager] error: ${paramError.code}, ${paramError.message} `); +} +``` + +## appManager.off(type: 'applicationStateEvent', observerId: number)10+ + +off(type: 'applicationStateEvent', observerId: number): void; + +取消注册应用程序状态观测器。 + +**需要权限**:ohos.permission.RUNNING_STATE_OBSERVER + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**系统API**:该接口为系统接口,三方应用不支持调用。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| type | string | 是 | 调用接口类型,固定填'applicationStateEvent'字符串。 | +| observerId | number | 是 | 表示观测器的编号代码。 | +| callback | AsyncCallback\ | 是 | 以回调方式返回接口运行结果,可进行错误处理或其他自定义处理。 | + +**错误码**: + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16000050 | Internal error. | + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 + +**示例:** + +```ts +import appManager from '@ohos.app.ability.appManager'; + +let observerId = 0; + +// 1.注册应用状态监听器 +let applicationStateObserver = { + onForegroundApplicationChanged(appStateData) { + console.log(`[appManager] onForegroundApplicationChanged: ${JSON.stringify(appStateData)}`); + }, + onAbilityStateChanged(abilityStateData) { + console.log(`[appManager] onAbilityStateChanged: ${JSON.stringify(abilityStateData)}`); + }, + onProcessCreated(processData) { + console.log(`[appManager] onProcessCreated: ${JSON.stringify(processData)}`); + }, + onProcessDied(processData) { + console.log(`[appManager] onProcessDied: ${JSON.stringify(processData)}`); + }, + onProcessStateChanged(processData) { + console.log(`[appManager] onProcessStateChanged: ${JSON.stringify(processData)}`); + } +}; +let bundleNameList = ['bundleName1', 'bundleName2']; +try { + observerId = appManager.on('applicationStateEvent', applicationStateObserver, bundleNameList); + console.log(`[appManager] observerCode: ${observerId}`); +} catch (paramError) { + console.error(`[appManager] error: ${paramError.code}, ${paramError.message} `); +} + +// 2.注销应用状态监听器 +try { + appManager.off('applicationStateEvent', observerId); +} catch (paramError) { + console.error(`error: ${paramError.code}, ${paramError.message}`); +} +``` + ## appManager.getForegroundApplications getForegroundApplications(callback: AsyncCallback\>): void; @@ -1356,3 +1569,4 @@ try { | STATE_ACTIVE | 3 | 当进程在获焦的时候处于的状态。 | | STATE_BACKGROUND | 4 | 当进程处于后台不可见时处于的状态。 | | STATE_DESTROY | 5 | 当进程在销毁的时候处于的状态。 | + \ No newline at end of file diff --git a/zh-cn/application-dev/reference/apis/js-apis-app-ability-errorManager.md b/zh-cn/application-dev/reference/apis/js-apis-app-ability-errorManager.md index 640b08d8cd0ffe1a259e663a9df514bdc175a61b..ec3d1ad96f0f1c0362120a1600b1890a5d668576 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-app-ability-errorManager.md +++ b/zh-cn/application-dev/reference/apis/js-apis-app-ability-errorManager.md @@ -11,12 +11,16 @@ ErrorManager模块提供对错误观察器的注册和注销的能力。使用 import errorManager from '@ohos.app.ability.errorManager'; ``` -## ErrorManager.on +## ErrorManager.on(type: 'error', observer: ErrorObserver)(deprecated) on(type: 'error', observer: ErrorObserver): number; 注册错误观测器。 +> **说明:** +> +> 从 API version 9开始支持,从API version 10开始废弃,推荐使用[ErrorManager.on(type: 'errorEvent', observer: ErrorObserver)](#errormanagerontype-errorevent-observer-errorobserver10)。 + **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数:** @@ -59,16 +63,20 @@ let observerId = -1; try { observerId = errorManager.on('error', observer); } catch (paramError) { - console.error('error: ${paramError.code}, ${paramError.message}'); + console.error(`error: ${paramError.code}, ${paramError.message}`); } ``` -## ErrorManager.off +## ErrorManager.off(type: 'error', observerId: number, callback: AsyncCallback\)(deprecated) off(type: 'error', observerId: number, callback: AsyncCallback\): void; 注销错误观测器。 +> **说明:** +> +> 从 API version 9开始支持,从API version 10开始废弃,推荐使用[ErrorManager.off(type: 'errorEvent', observerId: number)](#errormanagerofftype-errorevent-observerid-number10)。 + **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数:** @@ -100,16 +108,20 @@ function unregisterErrorObserverCallback(err) { try { errorManager.off('error', observerId, unregisterErrorObserverCallback); } catch (paramError) { - console.error('error: ${paramError.code}, ${paramError.message}'); + console.error(`error: ${paramError.code}, ${paramError.message}`); } ``` -## ErrorManager.off +## ErrorManager.off(type: 'error', observerId: number)(deprecated) off(type: 'error', observerId: number): Promise\; 注销错误观测器。 +> **说明:** +> +> 从 API version 9开始支持,从API version 10开始废弃,推荐使用[ErrorManager.off(type: 'errorEvent', observerId: number)](#errormanagerofftype-errorevent-observerid-number10)。 + **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数:** @@ -146,7 +158,96 @@ try { console.error('----------- unregisterErrorObserver fail ----------', err); }); } catch (paramError) { - console.error('error: ${paramError.code}, ${paramError.message}'); + console.error(`error: ${paramError.code}, ${paramError.message}`); +} + +``` + +## ErrorManager.on(type: 'errorEvent', observer: ErrorObserver)10+ + +on(type: 'errorEvent', observer: ErrorObserver): number; + +注册错误观测器。 + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| type | string | 是 | 填写'errorEvent',表示错误观察器。 | +| observer | [ErrorObserver](./js-apis-inner-application-errorObserver.md) | 是 | 错误观察器。 | + +**返回值:** + + | 类型 | 说明 | + | -------- | -------- | + | number | 观察器的index值,和观察器一一对应。 | + +**错误码**: + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16000003 | Id does not exist. | + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 + +**示例:** + +```ts +let observer = { + onUnhandledException(errorMsg) { + console.log('onUnhandledException, errorMsg: ', errorMsg); + }, + onException(errorObj) { + console.log('onException, name: ', errorObj.name); + console.log('onException, message: ', errorObj.message); + if (typeof(errorObj.stack) === 'string') { + console.log('onException, stack: ', errorObj.stack); + } + } +}; +let observerId = -1; +try { + observerId = errorManager.on('errorEvent', observer); +} catch (paramError) { + console.error(`error: ${paramError.code}, ${paramError.message}`); } +``` + +## ErrorManager.off(type: 'errorEvent', observerId: number)10+ + +off(type: 'errorEvent', observerId: number): void; + +注销错误观测器。 + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| type | string | 是 | 填写'errorEvent',表示错误观察器。 | +| observerId | number | 是 | 由on方法返回的观察器的index值。 | +| callback | AsyncCallback\ | 是 | 表示指定的回调方法。 | + +**错误码**: + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16000003 | Id does not exist. | +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 + +**示例:** + +```ts +let observerId = 100; + +try { + errorManager.off('errorEvent', observerId); +} catch (paramError) { + console.error(`error: ${paramError.code}, ${paramError.message}`); +} ``` + \ No newline at end of file diff --git a/zh-cn/application-dev/reference/apis/js-apis-app-ability-missionManager.md b/zh-cn/application-dev/reference/apis/js-apis-app-ability-missionManager.md index dd967e7981f4e2b3aee42a2d67a63440c89b0149..8e7be84913dcb1aa398ce9d53938bfad542e2d67 100755 --- a/zh-cn/application-dev/reference/apis/js-apis-app-ability-missionManager.md +++ b/zh-cn/application-dev/reference/apis/js-apis-app-ability-missionManager.md @@ -16,12 +16,16 @@ import missionManager from '@ohos.app.ability.missionManager'; ohos.permission.MANAGE_MISSIONS -## missionManager.on +## missionManager.on(type:'mission', listener: MissionListener)(deprecated) on(type:'mission', listener: MissionListener): number; 注册系统任务状态监听器。 +> **说明:** +> +> 从 API version 9开始支持,从API version 10开始废弃,推荐使用[missionManager.on(type:'missionEvent', listener: MissionListener)](#missionmanagerontypemissionevent-listener-missionlistener10)。 + **需要权限**:ohos.permission.MANAGE_MISSIONS **系统能力**:SystemCapability.Ability.AbilityRuntime.Mission @@ -32,6 +36,7 @@ on(type:'mission', listener: MissionListener): number; | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | + | type | string | 是 | 调用接口类型,固定填'mission'字符串。 | | listener | [MissionListener](js-apis-inner-application-missionListener.md) | 是 | 系统任务监听器。 | **返回值:** @@ -73,7 +78,7 @@ export default class EntryAbility extends UIAbility { }); } } catch (paramError) { - console.error('error: ${paramError.code}, ${paramError.message}'); + console.error(`error: ${paramError.code}, ${paramError.message}`); } console.log('[Demo] EntryAbility onDestroy'); } @@ -84,15 +89,15 @@ export default class EntryAbility extends UIAbility { try { listenerId = missionManager.on('mission', listener); } catch (paramError) { - console.error('error: ${paramError.code}, ${paramError.message}'); + console.error(`error: ${paramError.code}, ${paramError.message}`); } windowStage.loadContent('pages/index', (err, data) => { if (err.code) { - console.error('Failed to load the content. Cause: ${JSON.stringify(err)}'); + console.error(`Failed to load the content. Cause: ${JSON.stringify(err)}`); return; } - console.info('Succeeded in loading the content. Data: ${JSON.stringify(data)}'); + console.info(`Succeeded in loading the content. Data: ${JSON.stringify(data)}`); }); if (globalThis.flag) { @@ -102,13 +107,16 @@ export default class EntryAbility extends UIAbility { }; ``` - -## missionManager.off +## missionManager.off(type: 'mission', listenerId: number, callback: AsyncCallback<void>)(deprecated) off(type: 'mission', listenerId: number, callback: AsyncCallback<void>): void; 解注册任务状态监听器。 +> **说明:** +> +> 从 API version 9开始支持,从API version 10开始废弃,推荐使用[missionManager.off(type: 'missionEvent', listenerId: number)](#missionmanagerofftype-missionevent-listenerid-number10)。 + **需要权限**:ohos.permission.MANAGE_MISSIONS **系统能力**:SystemCapability.Ability.AbilityRuntime.Mission @@ -119,6 +127,7 @@ off(type: 'mission', listenerId: number, callback: AsyncCallback<void>): v | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | + | type | string | 是 | 调用接口类型,固定填'mission'字符串。 | | listenerId | number | 是 | 系统任务状态监器法的index值,和监听器一一对应,由on方法返回。 | | callback | AsyncCallback<void> | 是 | 执行结果回调函数。 | @@ -163,7 +172,7 @@ export default class EntryAbility extends UIAbility { }); } } catch (paramError) { - console.error('error: ${paramError.code}, ${paramError.message}'); + console.error(`error: ${paramError.code}, ${paramError.message}`); } console.log('[Demo] EntryAbility onDestroy'); } @@ -174,15 +183,15 @@ export default class EntryAbility extends UIAbility { try { listenerId = missionManager.on('mission', listener); } catch (paramError) { - console.error('error: ${paramError.code}, ${paramError.message}'); + console.error(`error: ${paramError.code}, ${paramError.message}`); } windowStage.loadContent('pages/index', (err, data) => { if (err.code) { - console.error('Failed to load the content. Cause: ${JSON.stringify(err)}'); + console.error(`Failed to load the content. Cause: ${JSON.stringify(err)}`); return; } - console.info('Succeeded in loading the content. Data: ${JSON.stringify(data)}'); + console.info(`Succeeded in loading the content. Data: ${JSON.stringify(data)}`); }); if (globalThis.flag) { @@ -192,13 +201,16 @@ export default class EntryAbility extends UIAbility { }; ``` - -## missionManager.off +## missionManager.off(type: 'mission', listenerId: number)(deprecated) off(type: 'mission', listenerId: number): Promise<void>; 解注册任务状态监听,以promise方式返回执行结果。 +> **说明:** +> +> 从 API version 9开始支持,从API version 10开始废弃,推荐使用[missionManager.off(type: 'missionEvent', listenerId: number)](#missionmanagerofftype-missionevent-listenerid-number10)。 + **需要权限**:ohos.permission.MANAGE_MISSIONS **系统能力**:SystemCapability.Ability.AbilityRuntime.Mission @@ -209,6 +221,7 @@ off(type: 'mission', listenerId: number): Promise<void>; | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | + | type | string | 是 | 调用接口类型,固定填'mission'字符串。 | | listenerId | number | 是 | 系统任务状态监听器的index值,和监听器一一对应,由on方法返回。 | **返回值:** @@ -258,7 +271,7 @@ export default class EntryAbility extends UIAbility { }); } } catch (paramError) { - console.error('error: ${paramError.code}, ${paramError.message}'); + console.error(`error: ${paramError.code}, ${paramError.message}`); } console.log('[Demo] EntryAbility onDestroy'); } @@ -269,15 +282,100 @@ export default class EntryAbility extends UIAbility { try { listenerId = missionManager.on('mission', listener); } catch (paramError) { - console.error('error: ${paramError.code}, ${paramError.message}'); + console.error(`error: ${paramError.code}, ${paramError.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)}`); + }); + + if (globalThis.flag) { + return; + } + } +}; +``` + +## missionManager.on(type:'missionEvent', listener: MissionListener)10+ + +on(type:'missionEvent', listener: MissionListener): number; + +注册系统任务状态监听器。 + +**需要权限**:ohos.permission.MANAGE_MISSIONS + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission + +**系统API**: 此接口为系统接口,三方应用不支持调用。 + +**参数:** + + | 参数名 | 类型 | 必填 | 说明 | + | -------- | -------- | -------- | -------- | + | type | string | 是 | 调用接口类型,固定填'missionEvent'字符串。 | + | listener | [MissionListener](js-apis-inner-application-missionListener.md) | 是 | 系统任务监听器。 | + +**返回值:** + + | 类型 | 说明 | + | -------- | -------- | + | number | 监听器的index值,由系统创建,在注册系统任务状态监听时分配,和监听器一一对应 。 | + +**示例:** + +```ts +import missionManager from '@ohos.app.ability.missionManager'; +import UIAbility from '@ohos.app.ability.UIAbility'; + +let listener = { + onMissionCreated: function (mission) {console.log('--------onMissionCreated-------');}, + onMissionDestroyed: function (mission) {console.log('--------onMissionDestroyed-------');}, + onMissionSnapshotChanged: function (mission) {console.log('--------onMissionSnapshotChanged-------');}, + onMissionMovedToFront: function (mission) {console.log('--------onMissionMovedToFront-------');}, + onMissionIconUpdated: function (mission, icon) {console.log('--------onMissionIconUpdated-------');}, + onMissionClosed: function (mission) {console.log('--------onMissionClosed-------');}, + onMissionLabelUpdated: function (mission) {console.log('--------onMissionLabelUpdated-------');} +}; + +let listenerId = -1; + +export default class EntryAbility extends UIAbility { + onCreate(want, launchParam) { + console.log('[Demo] EntryAbility onCreate'); + globalThis.abilityWant = want; + globalThis.context = this.context; + } + + onDestroy() { + try { + if (listenerId !== -1) { + missionManager.off('missionEvent', listenerId); + } + } catch (paramError) { + console.error(`error: ${paramError.code}, ${paramError.message}`); + } + console.log('[Demo] EntryAbility onDestroy'); + } + + onWindowStageCreate(windowStage) { + // Main window is created, set main page for this ability + console.log('[Demo] EntryAbility onWindowStageCreate'); + try { + listenerId = missionManager.on('missionEvent', listener); + } catch (paramError) { + console.error(`error: ${paramError.code}, ${paramError.message}`); } windowStage.loadContent('pages/index', (err, data) => { if (err.code) { - console.error('Failed to load the content. Cause: ${JSON.stringify(err)}'); + console.error(`Failed to load the content. Cause: ${JSON.stringify(err)}`); return; } - console.info('Succeeded in loading the content. Data: ${JSON.stringify(data)}'); + console.info(`Succeeded in loading the content. Data: ${JSON.stringify(data)}`); }); if (globalThis.flag) { @@ -287,6 +385,93 @@ export default class EntryAbility extends UIAbility { }; ``` +## missionManager.off(type: 'missionEvent', listenerId: number)10+ + +off(type: 'missionEvent', listenerId: number): void; + +解注册任务状态监听器。 + +**需要权限**:ohos.permission.MANAGE_MISSIONS + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission + +**系统API**: 此接口为系统接口,三方应用不支持调用。 + +**参数:** + + | 参数名 | 类型 | 必填 | 说明 | + | -------- | -------- | -------- | -------- | + | type | string | 是 | 调用接口类型,固定填'missionEvent'字符串。 | + | listenerId | number | 是 | 系统任务状态监器法的index值,和监听器一一对应,由on方法返回。 | + | callback | AsyncCallback<void> | 是 | 执行结果回调函数。 | + +**错误码**: + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16300002 | Input error. The specified mission listener does not exist. | + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 + +**示例:** + +```ts +import missionManager from '@ohos.app.ability.missionManager'; +import UIAbility from '@ohos.app.ability.UIAbility'; + +let listener = { + onMissionCreated: function (mission) {console.log('--------onMissionCreated-------');}, + onMissionDestroyed: function (mission) {console.log('--------onMissionDestroyed-------');}, + onMissionSnapshotChanged: function (mission) {console.log('--------onMissionSnapshotChanged-------');}, + onMissionMovedToFront: function (mission) {console.log('--------onMissionMovedToFront-------');}, + onMissionIconUpdated: function (mission, icon) {console.log('--------onMissionIconUpdated-------');}, + onMissionClosed: function (mission) {console.log('--------onMissionClosed-------');}, + onMissionLabelUpdated: function (mission) {console.log('--------onMissionLabelUpdated-------');} +}; + +let listenerId = -1; + +export default class EntryAbility extends UIAbility { + onCreate(want, launchParam) { + console.log('[Demo] EntryAbility onCreate'); + globalThis.abilityWant = want; + globalThis.context = this.context; + } + + onDestroy() { + try { + if (listenerId !== -1) { + missionManager.off('missionEvent', listenerId); + } + } catch (paramError) { + console.error(`error: ${paramError.code}, ${paramError.message}`); + } + console.log('[Demo] EntryAbility onDestroy'); + } + + onWindowStageCreate(windowStage) { + // Main window is created, set main page for this ability + console.log('[Demo] EntryAbility onWindowStageCreate'); + try { + listenerId = missionManager.on('missionEvent', listener); + } catch (paramError) { + console.error(`error: ${paramError.code}, ${paramError.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)}`); + }); + + if (globalThis.flag) { + return; + } + } +}; +``` ## missionManager.getMissionInfo @@ -1409,4 +1594,5 @@ try { console.log("error: " + paramError.code + ", " + paramError.message); } -``` \ No newline at end of file +``` + \ No newline at end of file