购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

6.4 实现分布式任务调度

在了解了分布式任务调度的实现原理之后,接下来将介绍如何实现分布式任务调度。

6.4.1 如何实现分布式任务调度

要实现分布式任务调度,开发者需要在应用中做如下操作:

· 在Intent中设置支持分布式的标记(例如Intent.FLAG_ABILITYSLICE_MULTI_DEVICE表示该应用支持分布式调度),否则将无法获得分布式能力。

· 在config.json中的reqPermissions字段中添加多设备协同访问的权限申请:三方应用使用{"name": "ohos.permission.DISTRIBUTED_DATASYNC"}。

· PA的调用支持连接及断开连接、启动及关闭这4类行为,在进行调度时:

必须在Intent中指定PA对应的bundleName和abilityName。

当需要跨设备启动、关闭或连接PA时,需要在Intent中指定对端设备的deviceId。可通过如设备管理类DeviceManager提供的getDeviceList获取指定条件下匿名化处理的设备列表,实现对指定设备PA的启动/关闭以及连接管理。

· FA的调用支持启动和迁移行为,在进行调度时:

当启动FA时,需要开发者在Intent中指定对端设备的deviceId、bundleName和abilityName。

FA的迁移实现相同bundleName和abilityName的FA跨设备迁移,因此需要指定迁移设备的deviceId。

6.4.2 分布式任务调度支持的场景

根据Ability模板及意图的不同,分布式任务调度向开发者提供了6种能力:启动远程FA、启动远程PA、关闭远程PA、连接远程PA、断开连接远程PA和FA跨设备迁移。下面以设备A(本地设备)和设备B(远端设备)为例进行场景介绍:

· 设备A启动设备B的FA:在设备A上通过本地应用提供的启动按钮启动设备B上对应的FA。例如,设备A控制设备B打开相册,只需开发者在启动FA时指定打开相册的意图即可。

· 设备A启动设备B的PA:在设备A上通过本地应用提供的启动按钮启动设备B上指定的PA。例如,开发者在启动远程服务时通过意图指定音乐播放服务,即可实现设备A启动设备B音乐播放的能力。

· 设备A关闭设备B的PA:在设备A上通过本地应用提供的关闭按钮关闭设备B上指定的PA。类似启动的过程,开发者在关闭远程服务时通过意图指定音乐播放服务,即可实现关闭设备B上该服务的能力。

· 设备A连接设备B的PA:在设备A上通过本地应用提供的连接按钮连接设备B上指定的PA。连接后,通过其他功能相关按钮实现控制对端PA的能力。通过连接关系,开发者可以实现跨设备的同步服务调度,实现如大型计算任务互助等价值场景。

· 设备A与设备B的PA断开连接:在设备A上通过本地应用提供的断开连接的按钮将之前已连接的PA断开连接。

· 设备A的FA迁移至设备B:设备A上通过本地应用提供的迁移按钮将设备A的业务无缝迁移到设备B中。通过业务迁移能力打通设备A和设备B间的壁垒,实现如文档跨设备编辑、视频从客厅到房间跨设备接续播放等场景。 w15yHag7ueZqavXt8CsCwWjdiP5nlg8ugQiJ/fEW4aj7Ah4rxLH59riwT2tTWe34

点击中间区域
呼出菜单
上一章
目录
下一章
×