1# @ohos.distributedMissionManager (分布式任务管理) 2 3分布式任务管理模块提供跨设备任务管理能力,包括注册和取消任务状态监听、开始和停止同步远端设备任务列表、通过任务ID和包名进行迁移任务等。 4 5> **说明:** 6> 7> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8> 9> 本模块接口为系统接口。 10 11## 导入模块 12 13```js 14import distributedMissionManager from '@ohos.distributedMissionManager' 15``` 16 17## distributedMissionManager.registerMissionListener 18 19registerMissionListener(parameter: MissionDeviceInfo, options: MissionCallback, callback: AsyncCallback<void>): void; 20 21注册任务状态监听。使用callback异步回调。 22 23**需要权限**:ohos.permission.MANAGE_MISSIONS 24 25**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission 26 27**参数:** 28 29| 参数名 | 类型 | 必填 | 说明 | 30| --------- | --------------------------------------- | ---- | --------- | 31| parameter | [MissionDeviceInfo](#missiondeviceinfo) | 是 | 注册监听时的设备信息。 | 32| options | [MissionCallback](#missioncallback) | 是 | 注册的回调方法。 | 33| callback | AsyncCallback<void> | 是 | 回调函数,注册监听成功,err为undefined,否则为错误对象。 | 34 35**示例:** 36 37 ```ts 38 import distributedMissionManager from '@ohos.distributedMissionManager' 39 import { BusinessError } from '@ohos.base'; 40 41 // 实现回调函数 42 function NotifyMissionsChanged(deviceId: string): void { 43 console.log('NotifyMissionsChanged deviceId ' + JSON.stringify(deviceId)); 44 } 45 function NotifySnapshot(deviceId: string, missionId: number): void { 46 console.log('NotifySnapshot deviceId ' + JSON.stringify(deviceId)); 47 console.log('NotifySnapshot missionId ' + JSON.stringify(missionId)); 48 } 49 function NotifyNetDisconnect(deviceId: string, state: number): void { 50 console.log('NotifyNetDisconnect deviceId ' + JSON.stringify(deviceId)); 51 console.log('NotifyNetDisconnect state ' + JSON.stringify(state)); 52 } 53 try { 54 // 调用registerMissionListener接口 55 distributedMissionManager.registerMissionListener( 56 { deviceId: "" }, 57 { 58 notifyMissionsChanged: NotifyMissionsChanged, 59 notifySnapshot: NotifySnapshot, 60 notifyNetDisconnect: NotifyNetDisconnect 61 }, 62 (error: BusinessError) => { 63 if (error.code != 0) { 64 console.error('registerMissionListener failed, cause: ' + JSON.stringify(error)) 65 } 66 console.info('registerMissionListener finished') 67 }); 68 } catch (error) { 69 console.error('registerMissionListener failed, cause: ' + JSON.stringify(error)) 70 } 71 ``` 72## distributedMissionManager.registerMissionListener 73 74registerMissionListener(parameter: MissionDeviceInfo, options: MissionCallback): Promise<void> 75 76注册任务状态监听。使用promise异步回调。 77 78**需要权限**:ohos.permission.MANAGE_MISSIONS 79 80**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission 81 82**参数:** 83 84| 参数名 | 类型 | 必填 | 说明 | 85| --------- | ---------------------------------------- | ---- | -------- | 86| parameter | [MissionDeviceInfo](#missiondeviceinfo) | 是 | 注册监听时的设备信息。 | 87| options | <a href="#missioncallback">MissionCallback</a> | 是 | 注册的回调方法。| 88 89**返回值:** 90 91| 类型 | 说明 | 92| ------------------- | ---------------- | 93| Promise<void> | 无返回结果的Promise对象。 | 94 95**示例:** 96 97 ```ts 98 import distributedMissionManager from '@ohos.distributedMissionManager' 99 import { BusinessError } from '@ohos.base'; 100 101 // 实现回调函数 102 function NotifyMissionsChanged(deviceId: string): void { 103 console.log('NotifyMissionsChanged deviceId ' + JSON.stringify(deviceId)); 104 } 105 function NotifySnapshot(deviceId: string, missionId: number): void { 106 console.log('NotifySnapshot deviceId ' + JSON.stringify(deviceId)); 107 console.log('NotifySnapshot missionId ' + JSON.stringify(missionId)); 108 } 109 function NotifyNetDisconnect(deviceId: string, state: number): void { 110 console.log('NotifyNetDisconnect deviceId ' + JSON.stringify(deviceId)); 111 console.log('NotifyNetDisconnect state ' + JSON.stringify(state)); 112 } 113 try { 114 // 调用registerMissionListener接口 115 distributedMissionManager.registerMissionListener( 116 { deviceId: "" }, 117 { 118 notifyMissionsChanged: NotifyMissionsChanged, 119 notifySnapshot: NotifySnapshot, 120 notifyNetDisconnect: NotifyNetDisconnect 121 }).then((data: void) => { 122 console.info('registerMissionListener finished, ' + JSON.stringify(data)); 123 }).catch((error: BusinessError) => { 124 console.error('registerMissionListener failed, cause: ' + JSON.stringify(error)); 125 }) 126 } catch (error) { 127 console.error('registerMissionListener failed, cause: ' + JSON.stringify(error)) 128 } 129 ``` 130 131## distributedMissionManager.unRegisterMissionListener 132 133unRegisterMissionListener(parameter: MissionDeviceInfo, callback: AsyncCallback<void>): void; 134 135取消任务状态监听。使用callback异步回调。 136 137**需要权限**:ohos.permission.MANAGE_MISSIONS 138 139**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission 140 141**参数:** 142 143| 参数名 | 类型 | 必填 | 说明 | 144| --------- | --------------------------------------- | ---- | --------- | 145| parameter | [MissionDeviceInfo](#missiondeviceinfo) | 是 | 注册监听时的设备信息。 | 146| callback | AsyncCallback<void> | 是 | 回调函数,取消监听成功,err为undefined,否则为错误对象。| 147 148**示例:** 149 150 ```ts 151 import distributedMissionManager from '@ohos.distributedMissionManager' 152 import { BusinessError } from '@ohos.base'; 153 154 try { 155 distributedMissionManager.unRegisterMissionListener( 156 { deviceId: "" }, 157 (error: BusinessError) => { 158 if (error.code != 0) { 159 console.error('unRegisterMissionListener failed, cause: ' + JSON.stringify(error)) 160 } 161 console.info('unRegisterMissionListener finished') 162 }) 163 } catch (error) { 164 console.error('unRegisterMissionListener failed, cause: ' + JSON.stringify(error)) 165 } 166 ``` 167 168## distributedMissionManager.unRegisterMissionListener 169 170unRegisterMissionListener(parameter: MissionDeviceInfo): Promise<void> 171 172取消任务状态监听。使用promise异步回调。 173 174**需要权限**:ohos.permission.MANAGE_MISSIONS 175 176**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission 177 178**参数:** 179 180| 参数名 | 类型 | 必填 | 说明 | 181| --------- | --------------------------------------- | ---- | ----- | 182| parameter | [MissionDeviceInfo](#missiondeviceinfo) | 是 | 注册监听时的设备信息。 | 183 184**返回值:** 185 186| 类型 | 说明 | 187| ------------------- | ---------------- | 188| Promise<void> |无返回结果的Promise对象。 | 189 190**示例:** 191 192 ```ts 193 import distributedMissionManager from '@ohos.distributedMissionManager' 194 import { BusinessError } from '@ohos.base'; 195 196 try { 197 distributedMissionManager.unRegisterMissionListener({deviceId: ""}).then(() => { 198 console.info('unRegisterMissionListener finished successfully'); 199 }).catch((error: BusinessError) => { 200 console.error('unRegisterMissionListener failed, cause: ' + JSON.stringify(error)); 201 }) 202 } catch (error) { 203 console.error('unRegisterMissionListener failed, cause: ' + JSON.stringify(error)) 204 } 205 ``` 206 207## distributedMissionManager.startSyncRemoteMissions 208 209startSyncRemoteMissions(parameter: MissionParameter, callback: AsyncCallback<void>): void; 210 211开始同步远端设备的任务列表。使用callback异步回调。 212 213**需要权限**:ohos.permission.MANAGE_MISSIONS 214 215**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission 216 217**参数:** 218 219| 参数名 | 类型 | 必填 | 说明 | 220| --------- | ------------------------------------- | ---- | --------- | 221| parameter | [MissionParameter](#missionparameter) | 是 | 同步信息。 | 222| callback | AsyncCallback<void> | 是 | 回调函数,同步远端任务列表成功时,err为undefined,否则返回错误对象。 | 223 224**示例:** 225 226 ```ts 227 import distributedMissionManager from '@ohos.distributedMissionManager' 228 import { BusinessError } from '@ohos.base'; 229 230 try { 231 distributedMissionManager.startSyncRemoteMissions( 232 { 233 deviceId: "", 234 fixConflict: false, 235 tag: 0 236 }, 237 (error: BusinessError) => { 238 if (error.code != 0) { 239 console.error('startSyncRemoteMissions failed, cause: ' + JSON.stringify(error)) 240 } 241 console.info('startSyncRemoteMissions finished')} 242 ) 243 } catch (error) { 244 console.error('startSyncRemoteMissions failed, cause: ' + JSON.stringify(error)) 245 } 246 ``` 247 248## distributedMissionManager.startSyncRemoteMissions 249 250startSyncRemoteMissions(parameter: MissionParameter): Promise<void> 251 252开始同步远端设备的任务列表。使用promise异步回调。 253 254**需要权限**:ohos.permission.MANAGE_MISSIONS 255 256**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission 257 258**参数:** 259 260| 参数名 | 类型 | 必填 | 说明 | 261| --------- | ------------------------------------- | ---- | ----- | 262| parameter | [MissionParameter](#missionparameter) | 是 | 同步信息。 | 263 264**返回值:** 265 266| 类型 | 说明 | 267| ------------------- | ---------------- | 268| Promise<void> | 无返回结果的Promise对象。 | 269 270**示例:** 271 272 ```ts 273 import distributedMissionManager from '@ohos.distributedMissionManager' 274 import { BusinessError } from '@ohos.base'; 275 276 try { 277 distributedMissionManager.startSyncRemoteMissions( 278 { 279 deviceId: "", 280 fixConflict: false, 281 tag: 0 282 } 283 ).then(() => { 284 console.info('startSyncRemoteMissions finished successfully'); 285 }).catch((error: BusinessError) => { 286 console.error('startSyncRemoteMissions failed, cause: ' + JSON.stringify(error)); 287 }) 288 } catch (error) { 289 console.error('startSyncRemoteMissions failed, cause: ' + JSON.stringify(error)) 290 } 291 ``` 292 293## distributedMissionManager.stopSyncRemoteMissions 294 295stopSyncRemoteMissions(parameter: MissionDeviceInfo, callback: AsyncCallback<void>): void; 296 297停止同步远端设备的任务列表。使用callback异步回调。 298 299**需要权限**:ohos.permission.MANAGE_MISSIONS 300 301**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission 302 303**参数:** 304 305| 参数名 | 类型 | 必填 | 说明 | 306| --------- | --------------------------------------- | ---- | --------- | 307| parameter | [MissionDeviceInfo](#missiondeviceinfo) | 是 | 同步信息。 | 308| callback | AsyncCallback<void> | 是 | 回调函数,停止同步远端任务列表成功时,err为undefined,否则为错误对象。 | 309 310**示例:** 311 312 ```ts 313 import distributedMissionManager from '@ohos.distributedMissionManager' 314 import { BusinessError } from '@ohos.base'; 315 316 try { 317 distributedMissionManager.stopSyncRemoteMissions( 318 { 319 deviceId: "" 320 }, 321 (error: BusinessError) => { 322 if (error.code != 0) { 323 console.error('stopSyncRemoteMissions failed, cause: ' + JSON.stringify(error)) 324 } 325 console.info('stopSyncRemoteMissions finished')} 326 ) 327 } catch (error) { 328 console.error('stopSyncRemoteMissions failed, cause: ' + JSON.stringify(error)) 329 } 330 ``` 331 332## distributedMissionManager.stopSyncRemoteMissions 333 334stopSyncRemoteMissions(parameter: MissionDeviceInfo): Promise<void> 335 336停止同步远端设备的任务列表。使用promise异步回调。 337 338**需要权限**:ohos.permission.MANAGE_MISSIONS 339 340**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission 341 342**参数:** 343 344| 参数名 | 类型 | 必填 | 说明 | 345| --------- | --------------------------------------- | ---- | ----- | 346| parameter | [MissionDeviceInfo](#missiondeviceinfo) | 是 | 同步信息。 | 347 348**返回值:** 349 350| 类型 | 说明 | 351| ------------------- | ---------------- | 352| Promise<void> | 无返回结果的promise对象。 | 353 354**示例:** 355 356 ```ts 357 import distributedMissionManager from '@ohos.distributedMissionManager' 358 import { BusinessError } from '@ohos.base'; 359 360 try { 361 distributedMissionManager.stopSyncRemoteMissions( 362 { 363 deviceId: "" 364 }).then((data: void) => { 365 console.info('stopSyncRemoteMissions finished successfully'); 366 }).catch((error: BusinessError) => { 367 console.error('stopSyncRemoteMissions failed, cause: ' + JSON.stringify(error)); 368 }) 369 } catch (error) { 370 console.error('stopSyncRemoteMissions failed, cause: ' + JSON.stringify(error)) 371 } 372 ``` 373 374## distributedMissionManager.continueMission 375 376continueMission(parameter: ContinueDeviceInfo, options: ContinueCallback, callback: AsyncCallback<void>): void; 377 378通过指定任务ID(missionId)的方式进行迁移任务。使用callback异步回调。 379 380**需要权限**:ohos.permission.MANAGE_MISSIONS,ohos.permission.DISTRIBUTED_DATASYNC 381 382**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission 383 384**参数:** 385 386| 参数名 | 类型 | 必填 | 说明 | 387| --------- | --------------------------------------- | ---- | ----- | 388| parameter | [ContinueDeviceInfo](js-apis-inner-application-continueDeviceInfo.md) | 是 | 迁移信息。 | 389| options | [ContinueCallback](js-apis-inner-application-continueCallback.md) | 是 | 迁移任务完成回调函数。 | 390| callback | AsyncCallback<void> | 是 | 回调函数,迁移任务完成时,err为undefined,否则返回错误对象。 | 391 392**错误码:** 393 394以下错误码的详细介绍请参见[分布式调度错误码](../errorcodes/errorcode-DistributedSchedule.md)。 395 396| 错误码ID | 错误信息 | 397| ------- | -------------------------------------------- | 398| 16300501 | The system ability work abnormally. | 399| 16300502 | Failed to get the missionInfo of the specified missionId. | 400| 16300503 | The application is not installed on the remote end and installation-free is not supported. | 401| 16300504 | The application is not installed on the remote end but installation-free is supported, try again with freeInstall flag. | 402| 16300505 | The operation device must be the device where the application to be continued is located or the target device to be continued. | 403| 16300506 | The local continuation task is already in progress. | 404 405**示例:** 406 407 ```ts 408 import distributedMissionManager from '@ohos.distributedMissionManager' 409 import { BusinessError } from '@ohos.base'; 410 411 // 实现回调函数 412 function onContinueDone(resultCode: number): void { 413 console.log('onContinueDone resultCode: ' + JSON.stringify(resultCode)); 414 }; 415 try { 416 // 调用continueMission接口 417 distributedMissionManager.continueMission( 418 { 419 srcDeviceId: "", 420 dstDeviceId: "", 421 missionId: 1, 422 wantParam: {"key": "value"} 423 }, 424 { onContinueDone: onContinueDone }, 425 (error: BusinessError) => { 426 if (error.code != 0) { 427 console.error('continueMission failed, cause: ' + JSON.stringify(error)) 428 } 429 console.info('continueMission finished') 430 }) 431 } catch (error) { 432 console.error('continueMission failed, cause: ' + JSON.stringify(error)) 433 } 434 ``` 435 436## distributedMissionManager.continueMission 437 438continueMission(parameter: ContinueDeviceInfo, options: ContinueCallback): Promise<void> 439 440通过指定任务ID(missionId)的方式进行迁移任务。使用promise异步回调。 441 442**需要权限**:ohos.permission.MANAGE_MISSIONS,ohos.permission.DISTRIBUTED_DATASYNC 443 444**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission 445 446**参数:** 447 448| 参数名 | 类型 | 必填 | 说明 | 449| --------- | --------------------------------------- | ---- | ----- | 450| parameter | [ContinueDeviceInfo](js-apis-inner-application-continueDeviceInfo.md) | 是 | 迁移信息。 | 451| options | [ContinueCallback](js-apis-inner-application-continueCallback.md) | 是 | 迁移任务完成回调函数。 | 452 453**返回值:** 454 455| 类型 | 说明 | 456| ------------------- | ---------------- | 457| Promise<void> |无返回结果的promise对象。 | 458 459**错误码:** 460 461以下错误码的详细介绍请参见[分布式调度错误码](../errorcodes/errorcode-DistributedSchedule.md)。 462 463| 错误码ID | 错误信息 | 464| ------- | -------------------------------------------- | 465| 16300501 | The system ability work abnormally. | 466| 16300502 | Failed to get the missionInfo of the specified missionId. | 467| 16300503 | The application is not installed on the remote end and installation-free is not supported. | 468| 16300504 | The application is not installed on the remote end but installation-free is supported, try again with freeInstall flag. | 469| 16300505 | The operation device must be the device where the application to be continued is located or the target device to be continued. | 470| 16300506 | The local continuation task is already in progress. | 471 472**示例:** 473 474 ```ts 475 import distributedMissionManager from '@ohos.distributedMissionManager' 476 import { BusinessError } from '@ohos.base'; 477 478 // 实现回调函数 479 function onContinueDone(resultCode: number): void { 480 console.log('onContinueDone resultCode: ' + JSON.stringify(resultCode)); 481 }; 482 try { 483 // 调用continueMission接口 484 distributedMissionManager.continueMission( 485 { 486 srcDeviceId: "", 487 dstDeviceId: "", 488 missionId: 1, 489 wantParam: {"key": "value"} 490 }, 491 { onContinueDone: onContinueDone }).then(() => { 492 console.info('continueMission finished successfully'); 493 }).catch((error: BusinessError) => { 494 console.error('continueMission failed, cause: ' + JSON.stringify(error)); 495 }) 496 } catch (error) { 497 console.error('continueMission failed, cause: ' + JSON.stringify(error)) 498 } 499 ``` 500 501## distributedMissionManager.continueMission<sup>10+</sup> 502 503continueMission(parameter: ContinueMissionInfo, callback: AsyncCallback<void>): void; 504 505通过指定包名(bundleName)的方式进行迁移任务。使用callback异步回调。 506 507**需要权限**:ohos.permission.MANAGE_MISSIONS,ohos.permission.DISTRIBUTED_DATASYNC 508 509**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission 510 511**参数:** 512 513| 参数名 | 类型 | 必填 | 说明 | 514| --------- | --------------------------------------- | ---- | ----- | 515| parameter | [ContinueMissionInfo](./js-apis-inner-application-continueMissionInfo.md) | 是 | 迁移信息。 | 516| callback | AsyncCallback<void> | 是 | 回调函数,通过指定包名迁移任务完成时,err为undefined,否则为错误对象。 | 517 518**错误码:** 519 520以下错误码的详细介绍请参见[分布式调度错误码](../errorcodes/errorcode-DistributedSchedule.md)。 521 522| 错误码ID | 错误信息 | 523| ------- | -------------------------------------------- | 524| 16300501 | The system ability work abnormally. | 525| 16300503 | The application is not installed on the remote end and installation-free is not supported. | 526| 16300504 | The application is not installed on the remote end but installation-free is supported, try again with freeInstall flag. | 527| 16300505 | The operation device must be the device where the application to be continued is located or the target device to be continued. | 528| 16300506 | The local continuation task is already in progress. | 529| 16300507 | Failed to get the missionInfo of the specified bundle name. | 530 531**示例:** 532 533 ```ts 534 import distributedMissionManager from '@ohos.distributedMissionManager' 535 import { BusinessError } from '@ohos.base'; 536 537 try { 538 distributedMissionManager.continueMission( 539 { 540 srcDeviceId: "", 541 dstDeviceId: "", 542 bundleName: "ohos.test.continueapp", 543 wantParam: {"key": "value"} 544 }, 545 (error: BusinessError) => { 546 if (error.code != 0) { 547 console.error('continueMission failed, cause: ' + JSON.stringify(error)) 548 } 549 console.info('continueMission finished') 550 }) 551 } catch (error) { 552 console.error('continueMission failed, cause: ' + JSON.stringify(error)) 553 } 554 ``` 555 556## distributedMissionManager.continueMission<sup>10+</sup> 557 558continueMission(parameter: ContinueMissionInfo): Promise<void> 559 560通过指定包名(bundleName)的方式进行迁移任务。使用Promise异步回调。 561 562**需要权限**:ohos.permission.MANAGE_MISSIONS,ohos.permission.DISTRIBUTED_DATASYNC 563 564**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission 565 566**参数:** 567 568| 参数名 | 类型 | 必填 | 说明 | 569| --------- | --------------------------------------- | ---- | ----- | 570| parameter | [ContinueMissionInfo](./js-apis-inner-application-continueMissionInfo.md) | 是 | 迁移信息。 | 571 572**返回值:** 573 574| 类型 | 说明 | 575| ------------------- | ---------------- | 576| Promise<void> | 无返回结果的promise对象。 | 577 578**错误码:** 579 580以下错误码的详细介绍请参见[分布式调度错误码](../errorcodes/errorcode-DistributedSchedule.md)。 581 582| 错误码ID | 错误信息 | 583| ------- | -------------------------------------------- | 584| 16300501 | The system ability work abnormally. | 585| 16300503 | The application is not installed on the remote end and installation-free is not supported. | 586| 16300504 | The application is not installed on the remote end but installation-free is supported, try again with freeInstall flag. | 587| 16300505 | The operation device must be the device where the application to be continued is located or the target device to be continued. | 588| 16300506 | The local continuation task is already in progress. | 589| 16300507 | Failed to get the missionInfo of the specified bundle name. | 590 591**示例:** 592 593 ```ts 594 import distributedMissionManager from '@ohos.distributedMissionManager' 595 import { BusinessError } from '@ohos.base'; 596 597 try { 598 distributedMissionManager.continueMission( 599 { 600 srcDeviceId: "", 601 dstDeviceId: "", 602 bundleName: "ohos.test.continueapp", 603 wantParam: {"key": "value"} 604 } 605 ).then(() => { 606 console.info('continueMission finished successfully'); 607 }).catch((error: BusinessError) => { 608 console.error('continueMission failed, cause: ' + JSON.stringify(error)); 609 }) 610 } catch (error) { 611 console.error('continueMission failed, cause: ' + JSON.stringify(error)) 612 } 613 ``` 614 615## distributedMissionManager.on('continueStateChange')<sup>10+</sup> 616 617on(type: 'continueStateChange', callback: Callback<{ state: ContinueState, info: ContinuableInfo }>): void 618 619注册当前任务流转状态的监听。 620 621**需要权限**:ohos.permission.MANAGE_MISSIONS 622 623**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission 624 625**参数:** 626 627| 参数名 | 类型 | 必填 | 说明 | 628| --------- | ---------------------------------------- | ---- | -------- | 629| type | string | 是 | 当前任务流转状态,取值为'continueStateChange'。 | 630| callback | Callback<{ state: [ContinueState](#continuestate10), info: [ContinuableInfo](./js-apis-inner-application-continuableInfo.md) }> | 是 | 回调函数,返回当前任务的流转状态和流转信息。 | 631 632**示例:** 633 634```js 635 import distributedMissionManager from '@ohos.distributedMissionManager' 636 637 try { 638 distributedMissionManager.on('continueStateChange', (data) => { 639 console.info("continueStateChange on:" + JSON.stringify(data)); 640 }); 641 } catch (error) { 642 console.error("continueStateChange err: " + JSON.stringify(error)); 643 } 644 ``` 645 646## distributedMissionManager.off('continueStateChange')<sup>10+</sup> 647 648off(type: 'continueStateChange', callback?: Callback<{ state: ContinueState, info: ContinuableInfo }>): void 649 650取消当前任务流转的状态监听。 651 652**需要权限**:ohos.permission.MANAGE_MISSIONS 653 654**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission 655 656**参数:** 657 658| 参数名 | 类型 | 必填 | 说明 | 659| --------- | ---------------------------------------- | ---- | -------- | 660| type | string | 是 | 当前任务流转状态,取值为'continueStateChange'。 | 661| callback | Callback<{ state: [ContinueState](#continuestate10), info: [ContinuableInfo](./js-apis-inner-application-continuableInfo.md) }> | 否 | 回调函数,返回当前任务的流转状态和流转信息。<br>参数不填写,取消type对应的所有回调监听。 | 662 663**示例:** 664 665```js 666 import distributedMissionManager from '@ohos.distributedMissionManager' 667 668 try { 669 distributedMissionManager.off('continueStateChange', (data) => { 670 console.info("continueStateChange off:" + JSON.stringify(data)); 671 }); 672 } catch (err) { 673 console.error("continueStateChange err: " + JSON.stringify(error)); 674 } 675 ``` 676 677## MissionCallback 678 679开始同步后,建立的回调函数。 680 681**需要权限**:ohos.permission.MANAGE_MISSIONS 682 683**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission 684 685| 名称 | 类型 | 可读 | 可写 | 说明 | 686| --------------------- | -------- | ---- | ---- | ------------------ | 687| notifyMissionsChanged | function | 是 | 否 | 通知任务变化,返回设备ID。 | 688| notifySnapshot | function | 是 | 否 | 通知快照变化,返回设备ID,任务ID。 | 689| notifyNetDisconnect | function | 是 | 否 | 通知断开连接,返回设备ID,网络状态。 | 690 691## MissionParameter 692 693同步时所需参数的枚举。 694 695**需要权限**:ohos.permission.MANAGE_MISSIONS 696 697**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission 698 699| 名称 | 类型 | 可读 | 可写 | 说明 | 700| ----------- | ------- | ---- | ---- | ----------- | 701| deviceId | string | 是 | 是 | 表示设备ID。 | 702| fixConflict | boolean | 是 | 是 | 表示是否存在版本冲突。 | 703| tag | number | 是 | 是 | 表示特定的标签。 | 704 705## MissionDeviceInfo 706 707注册监听时所需参数的枚举。 708 709**需要权限**:ohos.permission.MANAGE_MISSIONS 710 711**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission 712 713| 名称 | 类型 | 可读 | 可写 | 说明 | 714| -------- | ------ | ---- | ---- | ------- | 715| deviceId | string | 是 | 是 | 表示设备ID。 | 716 717## ContinueState<sup>10+</sup> 718 719当前任务流转状态的枚举。 720 721**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission 722 723| 名称 | 值 | 说明 | 724| ------------- | --------- | ------------------------------------------------------------ | 725| ACTIVE | 0 | 表示当前任务流转处于激活状态。 | 726| INACTIVE | 1 | 表示当前任务流转处于未激活状态。 |