• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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&lt;void&gt; | 无返回结果的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&lt;void&gt;): 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&lt;void&gt;               | 是    | 回调函数,取消监听成功,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&lt;void&gt;
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&lt;void&gt; |无返回结果的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&lt;void&gt;): 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&lt;void&gt;             | 是    | 回调函数,同步远端任务列表成功时,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&lt;void&gt;
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&lt;void&gt; | 无返回结果的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&lt;void&gt;): 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&lt;void&gt;               | 是    | 回调函数,停止同步远端任务列表成功时,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&lt;void&gt;
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&lt;void&gt; | 无返回结果的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&lt;void&gt;): void;
381
382通过指定任务ID(missionId)的方式进行迁移任务。使用callback异步回调。
383
384**需要权限**:ohos.permission.MANAGE_MISSIONSohos.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&lt;void&gt; | 是    | 回调函数,迁移任务完成时,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&lt;void&gt;
444
445通过指定任务ID(missionId)的方式进行迁移任务。使用promise异步回调。
446
447**需要权限**:ohos.permission.MANAGE_MISSIONSohos.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&lt;void&gt; |无返回结果的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&lt;void&gt;): void;
509
510通过指定包名(bundleName)的方式进行迁移任务。使用callback异步回调。
511
512**需要权限**:ohos.permission.MANAGE_MISSIONSohos.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&lt;void&gt; | 是    | 回调函数,通过指定包名迁移任务完成时,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&lt;void&gt;
565
566通过指定包名(bundleName)的方式进行迁移任务。使用Promise异步回调。
567
568**需要权限**:ohos.permission.MANAGE_MISSIONSohos.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&lt;void&gt; | 无返回结果的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&lt;{ state: ContinueState, info: ContinuableInfo }&gt;): 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&lt;{&nbsp;state:&nbsp;[ContinueState](#continuestate10),&nbsp;info:&nbsp;[ContinuableInfo](./js-apis-inner-application-continuableInfo.md)&nbsp;}&gt; | 是    | 回调函数,返回当前任务的流转状态和流转信息。    |
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&lt;{ state: ContinueState, info: ContinuableInfo }&gt;): 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&lt;{&nbsp;state:&nbsp;[ContinueState](#continuestate10),&nbsp;info:&nbsp;[ContinuableInfo](./js-apis-inner-application-continuableInfo.md)&nbsp;}&gt; | 否    | 需要取消的回调函数。<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         | 表示当前任务流转处于未激活状态。                            |