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