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

6.4 实现分布式任务调度

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

6.4.1 实现分布式任务调度

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

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

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

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

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

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

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

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

②实现相同 bundleName 和 abilityName 的 FA要实现跨设备迁移,需要指定迁移设备的devi-ceId。

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

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

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

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

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

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

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

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

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