• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Stage模型绑定FA模型ServiceAbility
2
3
4本小节介绍Stage模型的两种应用组件如何绑定FA模型ServiceAbility组件。
5
6
7## UIAbility关联访问ServiceAbility
8
9UIAbility关联访问ServiceAbility和UIAbility关联访问ServiceExtensionAbility的方式完全相同。
10
11
12```ts
13import UIAbility from '@ohos.app.ability.UIAbility';
14import AbilityConstant from '@ohos.app.ability.AbilityConstant';
15import common from '@ohos.app.ability.common';
16import Want from '@ohos.app.ability.Want';
17import window from '@ohos.window';
18
19export default class EntryAbility extends UIAbility {
20    onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {
21        console.info("EntryAbility onCreate");
22    }
23    onDestroy() {
24        console.info("EntryAbility onDestroy")
25    }
26    onWindowStageCreate(windowStage: window.WindowStage) {
27        console.info("EntryAbility onWindowStageCreate")
28        let want: Want = {
29            bundleName: "com.ohos.fa",
30            abilityName: "ServiceAbility",
31        };
32
33        let options: common.ConnectOptions = {
34            onConnect: (elementName, proxy) => {
35                console.info("onConnect called.");
36            },
37            onDisconnect: (elementName) => {
38                console.info("onDisconnect called.");
39            },
40            onFailed: (code) => {
41                console.info("onFailed code is: " + code);
42            }
43        };
44        let connectionId = this.context.connectServiceExtensionAbility(want, options);
45    }
46    onWindowStageDestroy() {
47        console.info("EntryAbility onWindowStageDestroy")
48    }
49    onForeground() {
50        console.info("EntryAbility onForeground")
51    }
52    onBackground() {
53        console.info("EntryAbility onBackground")
54    }
55}
56```
57
58
59## ExtensionAbility关联访问ServiceAbility
60
61下面以ServiceExtensionAbility为例来说明ExtensionAbility关联访问ServiceAbility。ServiceExtensionAbility关联访问ServiceAbility和ServiceExtensionAbility关联访问ServiceExtensionAbility的方式完全相同。
62
63
64```ts
65import Extension from '@ohos.app.ability.ServiceExtensionAbility';
66import common from '@ohos.app.ability.common';
67import Want from '@ohos.app.ability.Want';
68
69export default class ServiceExtension extends Extension {
70    onCreate(want: Want) {
71        console.info("ServiceExtension onCreate")
72    }
73    onDestroy() {
74        console.info("ServiceExtension onDestroy")
75    }
76    onRequest(want: Want, startId: number) {
77        console.info("ServiceExtension onRequest")
78        let wantFA: Want = {
79            bundleName: "com.ohos.fa",
80            abilityName: "ServiceAbility",
81        };
82        let options: common.ConnectOptions = {
83            onConnect: (elementName, proxy) => {
84                console.info("onConnect called.");
85            },
86            onDisconnect: (elementName) => {
87                console.info("onDisconnect called.");
88            },
89            onFailed: (code) => {
90                console.info("onFailed code is: " + code);
91            }
92        };
93        let connectionId = this.context.connectServiceExtensionAbility(wantFA, options);
94    }
95}
96```
97