1# 启动ServiceAbility 2 3 4ServiceAbility的启动与其他Ability并无区别,应用开发者可以在PageAbility中通过featureAbility的startAbility接口拉起ServiceAbility,在ServiceAbility中通过particleAbility的startAbility接口拉起ServiceAbility。ServiceAbility的启动规则详见[组件启动规则](component-startup-rules.md)章节。 5 6 7如下示例展示了在PageAbility中通过startAbility启动bundleName为"com.example.myapplication",abilityName为"ServiceAbility"的ServiceAbility的方法。启动FA模型的ServiceAbility时,需要在abilityName前拼接bundleName字符串。 8 9```ts 10import featureAbility from '@ohos.ability.featureAbility' 11 12async function startServiceAbility() { 13 try { 14 console.info('Begin to start ability') 15 let param = { 16 want: { 17 bundleName: "com.example.myapplication", 18 abilityName: "com.example.myapplication.ServiceAbility" 19 } 20 } 21 await featureAbility.startAbility(param) 22 console.info(`Start ability succeed`) 23 } catch (error) { 24 console.error('Start ability failed with ' + error) 25 } 26} 27``` 28 29 30执行上述代码后,Ability将通过[`startAbility()`](../reference/apis/js-apis-inner-application-uiAbilityContext.md#uiabilitycontextstartability)方法来启动ServiceAbility。 31 32 33- 如果ServiceAbility尚未运行,则系统会先调用onStart()来初始化ServiceAbility,再回调Service的onCommand()方法来启动ServiceAbility。 34 35- 如果ServiceAbility正在运行,则系统会直接回调ServiceAbility的onCommand()方法来启动ServiceAbility。 36