• 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.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&lt;void&gt; | 无返回结果的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&lt;void&gt;): 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&lt;void&gt;               | 是    | 回调函数,取消监听成功,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&lt;void&gt;
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&lt;void&gt; |无返回结果的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&lt;void&gt;): 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&lt;void&gt;             | 是    | 回调函数,同步远端任务列表成功时,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&lt;void&gt;
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&lt;void&gt; | 无返回结果的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&lt;void&gt;): 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&lt;void&gt;               | 是    | 回调函数,停止同步远端任务列表成功时,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&lt;void&gt;
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&lt;void&gt; | 无返回结果的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&lt;void&gt;): void;
377
378通过指定任务ID(missionId)的方式进行迁移任务。使用callback异步回调。
379
380**需要权限**:ohos.permission.MANAGE_MISSIONSohos.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&lt;void&gt; | 是    | 回调函数,迁移任务完成时,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&lt;void&gt;
439
440通过指定任务ID(missionId)的方式进行迁移任务。使用promise异步回调。
441
442**需要权限**:ohos.permission.MANAGE_MISSIONSohos.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&lt;void&gt; |无返回结果的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&lt;void&gt;): void;
504
505通过指定包名(bundleName)的方式进行迁移任务。使用callback异步回调。
506
507**需要权限**:ohos.permission.MANAGE_MISSIONSohos.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&lt;void&gt; | 是    | 回调函数,通过指定包名迁移任务完成时,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&lt;void&gt;
559
560通过指定包名(bundleName)的方式进行迁移任务。使用Promise异步回调。
561
562**需要权限**:ohos.permission.MANAGE_MISSIONSohos.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&lt;void&gt; | 无返回结果的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&lt;{ state: ContinueState, info: ContinuableInfo }&gt;): 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&lt;{&nbsp;state:&nbsp;[ContinueState](#continuestate10),&nbsp;info:&nbsp;[ContinuableInfo](./js-apis-inner-application-continuableInfo.md)&nbsp;}&gt; | 是    | 回调函数,返回当前任务的流转状态和流转信息。    |
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&lt;{ state: ContinueState, info: ContinuableInfo }&gt;): 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&lt;{&nbsp;state:&nbsp;[ContinueState](#continuestate10),&nbsp;info:&nbsp;[ContinuableInfo](./js-apis-inner-application-continuableInfo.md)&nbsp;}&gt; | 否    | 回调函数,返回当前任务的流转状态和流转信息。<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         | 表示当前任务流转处于未激活状态。                            |