create-serviceability.md 1.9 KB
Newer Older
Z
zengyawen 已提交
1 2 3 4 5
# 创建ServiceAbility


1. 创建ServiceAbility。

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

Z
zhongjianfei 已提交
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
   ```ts
     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')
       },
       onCommand(want, startId) {
         console.info('ServiceAbility onCommand')
       },
       onConnect(want) {
         console.info('ServiceAbility onConnect' + want)
         return new FirstServiceAbilityStub('test')
       },
       onDisconnect(want) {
         console.info('ServiceAbility onDisconnect' + want)
       }
     }
   ```
Z
zengyawen 已提交
40 41

2. 注册ServiceAbility。
Z
zhongjianfei 已提交
42
   
43
    ServiceAbility需要在应用配置文件config.json中进行注册,注册类型type需要设置为service。"exported"属性表示ServiceAbility是否可以被其他应用调用,true表示可以被其他应用调用,false表示不能被其他应用调用(仅应用内可以调用)。若ServiceAbility需要被其他应用调用,注册ServiceAbility时需要设置"exported"为true,同时需要设置支持关联启动。ServiceAbility的启动规则详见[组件启动规则](component-startup-rules.md)章节。
Z
zhongjianfei 已提交
44 45 46 47 48 49 50 51 52 53 54 55
    
    ```json
         {
           "module": {
             "abilities": [
               {
                 "name": ".ServiceAbility",
                 "srcLanguage": "ets",
                 "srcPath": "ServiceAbility",
                 "icon": "$media:icon",
                 "description": "hap sample empty service",
                 "type": "service",
56
                 "exported": true
Z
zhongjianfei 已提交
57 58
               }
             ]
Z
zengyawen 已提交
59
           }
Z
zhongjianfei 已提交
60 61
         }
    ```
Z
zengyawen 已提交
62