鸿蒙开发Ability Kit程序框架服务:ServiceAbility切换 组件切换

电子说

1.2w人已加入

描述

ServiceAbility切换

FA模型中的ServiceAbility对应Stage模型中的ServiceExtensionAbility。Stage模型下的ServiceExtensionAbility为系统API,只有系统应用才可以创建。因此,FA模型的ServiceAbility的切换,对于系统应用和三方应用策略有所不同。下面分别介绍这两种场景。

系统应用ServiceAbility切换

目前系统提供了ServiceExtensionAbility供系统应用使用。切换步骤和PageAbility基本一致。

  1. 在Stage应用中[创建ServiceExtensionAbility]。
  2. 将FA应用中ServiceAbility的业务代码迁移到新创建的ServiceExtensionAbility中。 ServiceAbility和ServiceExtensionAbility生命周期对比见下表。
  3. 开发前请熟悉鸿蒙开发指导文档 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]
    FA的ServiceAbilityStage的ServiceExtensionAbility对比描述
    onStart(): voidonCreate(want: Want): void两者调用时机一致,Stage模型下增加了入参want以便开发者在创建时获取参数。
    onCommand(want: Want, startId: number): voidonRequest(want: Want, startId: number): void两者意义和调用时机一致,参数也一致。
    onConnect(want: Want): rpc.RemoteObjectonConnect(want: Want): rpc.RemoteObject两者意义和调用时机一致,参数也一致。
    onDisconnect(want: Want): voidonDisconnect(want: Want): void两者意义和调用时机一致,参数也一致。
    onReconnect(want: Want): voidonReconnect(want: Want): void两者意义和调用时机一致,参数也一致。
    onStop(): voidonDestroy(): void两者意义和调用时机一致,参数也一致。

框架

三方应用ServiceAbility切换

Stage模型下三方应用不能对其他三方提供服务,应用可以根据具体业务选择切换方案。

业务类型切换策略
对其他三方应用提供服务需根据业务场景匹配到系统对应的场景化[ExtensionAbility]。
应用内:前台运行时公共使用可以将该组件代码抽取成公共模块供其他组件使用。
应用内:进入后台时继续运行可以将此服务切换为[后台任务]。

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分