1# 创建ServiceAbility 2 3 41. 创建ServiceAbility。 5 6 重写ServiceAbility的生命周期方法,添加其他Ability请求与ServiceAbility交互时的处理方法。 7 8 ```ts 9 import Want from '@ohos.app.ability.Want'; 10 import rpc from "@ohos.rpc" 11 12 class FirstServiceAbilityStub extends rpc.RemoteObject { 13 constructor(des: string) { 14 super(des); 15 } 16 } 17 18 class ServiceAbility { 19 onStart() { 20 console.info('ServiceAbility onStart') 21 } 22 onStop() { 23 console.info('ServiceAbility onStop') 24 } 25 onCommand(want: Want, startId: number) { 26 console.info('ServiceAbility onCommand') 27 } 28 onConnect(want: Want) { 29 console.info('ServiceAbility onConnect' + want) 30 return new FirstServiceAbilityStub('test') 31 } 32 onDisconnect(want: Want) { 33 console.info('ServiceAbility onDisconnect' + want) 34 } 35 } 36 37 export default new ServiceAbility() 38 ``` 39 402. 注册ServiceAbility。 41 42 ServiceAbility需要在应用配置文件config.json中进行注册,注册类型type需要设置为service。"visible"属性表示ServiceAbility是否可以被其他应用调用,true表示可以被其他应用调用,false表示不能被其他应用调用(仅应用内可以调用)。若ServiceAbility需要被其他应用调用,注册ServiceAbility时需要设置"visible"为true,同时需要设置支持关联启动。ServiceAbility的启动规则详见[组件启动规则](component-startup-rules.md)章节。 43 44 ```json 45 { 46 "module": { 47 "abilities": [ 48 { 49 "name": ".ServiceAbility", 50 "srcLanguage": "ets", 51 "srcPath": "ServiceAbility", 52 "icon": "$media:icon", 53 "description": "hap sample empty service", 54 "type": "service", 55 "visible": true 56 } 57 ] 58 } 59 } 60 ``` 61 62