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