HarmonyOS4.0系统性深入开发23ServiceAbility组件概述

ServiceAbility组件概述

ServiceAbility,即"基于Service模板的Ability",主要用于后台运行任务(如执行音乐播放、文件下载等),不提供用户交互界面。ServiceAbility可由其他应用或PageAbility启动,即使用户切换到其他应用,ServiceAbility仍将在后台继续运行。

ServiceAbility组件配置

与PageAbility类似,ServiceAbility的相关配置在config.json配置文件的"module"对象的"abilities"对象中,与PageAbility的区别在于"type"属性及"backgroundModes"属性。

表1 ServiceAbility部分配置项说明

属性名称 含义 数据类型 是否可缺省
type 表示Ability的类型。取值为"service"时表示该Ability是基于Service模板开发的Ability。 字符串
backgroundModes 表示后台服务的类型,可以为一个服务配置多个后台服务类型。该标签仅适用于service类型的Ability。取值范围如下:dataTransfer:通过网络/对端设备进行数据下载、备份、分享、传输等业务。audioPlayback:音频输出业务。audioRecording:音频输入业务。pictureInPicture:画中画、小窗口播放视频业务。voip:音视频电话、VOIP业务。location:定位、导航业务。bluetoothInteraction:蓝牙扫描、连接、传输业务。wifiInteraction:WLAN扫描、连接、传输业务。screenFetch:录屏、截屏业务。multiDeviceConnection:多设备互联业务。 字符串数组 可缺省,缺省值为空。

ServiceAbility支持的配置项及详细说明详见module对象内部结构

ServiceAbility的生命周期

开发者可以根据业务场景重写生命周期相关接口。ServiceAbility生命周期接口说明见下表。

表1 ServiceAbility生命周期接口说明

接口名 描述
onStart(): void 该方法在创建ServiceAbility的时候调用,用于Service的初始化,在ServiceAbility的整个生命周期只会调用一次。
onCommand(want: Want, startId: number): void 在Service创建完成之后调用,该方法在客户端每次启动该Service时都会调用,开发者可以在该方法中做一些调用统计、初始化类的操作。
onConnect(want: Want): rpc.RemoteObject 在连接ServiceAbility时调用。
onDisconnect(want: Want): void 在与已连接的ServiceAbility断开连接时调用。
onStop(): void 在ServiceAbility销毁时调用。开发者应通过实现此方法来清理资源,如关闭线程、注册的侦听器等。

创建ServiceAbility

  1. 创建ServiceAbility。

    重写ServiceAbility的生命周期方法,添加其他Ability请求与ServiceAbility交互时的处理方法。

      import rpc from "@ohos.rpc"
      
      class FirstServiceAbilityStub extends rpc.RemoteObject {
         
        constructor(des: any) {
         
          if (typeof des === 'string') {
         
            super(des)
          } else {
         
            return
          }
        }
      }
      
      export default {
         
        onStart() {
         
          console.info('ServiceAbility onStart')
        },
        onStop() {
         
          console.info('ServiceAbility onStop')
        },
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值