PageAbility开发说明

PageAbility介绍

Page模板(以下简称“Page”)是FA唯一支持的模板,用于提供与用户交互的能力。

PageAbility的生命周期

Ability生命周期介绍(Ability Life Cycle)是Ability被调度到INACTIVE、ACTIVE、BACKGROUND等各个状态的统称(主要涉及PageAbility类型和ServiceAbility类型的Ability)。

  • PageAbility类型的Ability生命周期流转如下图所示

PageAbility-Lifecycle

Ability生命周期状态说明:

  • UNINITIALIZED:未初始状态,为临时状态,Ability被创建后会由UNINITIALIZED状态进入INITIAL状态。

  • INITIAL:初始化状态,也表示停止状态,表示当前Ability未运行,Ability被启动后由INITIAL态进入INACTIVE状态。

  • INACTIVE:未激活状态,表示当前窗口已显示但是无焦点状态,由于Window暂未支持焦点的概念,当前状态与ACTIVE一致。

  • ACTIVE:前台激活状态,表示当前窗口已显示,并获取焦点,Ability在退到后台之前先由ACTIVE状态进入INACTIVE状态。

  • BACKGROUND: 后台状态,表示当前Ability退到后台,Ability在被销毁后由BACKGROUND状态进入INITIAL状态,或者重新被激活后由BACKGROUND状态进入ACTIVE状态。

PageAbility类型Ability生命周期回调如下图所示:

PageAbility-Lifecycel-Callbacks

启动本地PageAbility

导入模块

  1. import featureAbility from '@ohos.ability.featureAbility'
  1. FeatureAbility.startAbility(parameter: StartAbilityParameter, callback: AsyncCallback<number>)
  • 接口说明

    启动新的ability(callback形式)

  • 示例

  1. import featureAbility from '@ohos.ability.featureAbility'
  2. featureAbility.startAbility(
  3. {
  4. want:
  5. {
  6. action: "",
  7. entities: [""],
  8. type: "",
  9. options: {
  10. // indicates the grant to perform read operations on the URI
  11. authReadUriPermission: true,
  12. // indicates the grant to perform write operations on the URI
  13. authWriteUriPermission: true,
  14. // support forward intent result to origin ability
  15. abilityForwardResult: true,
  16. // used for marking the ability start-up is triggered by continuation
  17. abilityContinuation: true,
  18. // specifies whether a component does not belong to ohos
  19. notOhosComponent: true,
  20. // specifies whether an ability is started
  21. abilityFormEnabled: true,
  22. // indicates the grant for possible persisting on the URI.
  23. authPersistableUriPermission: true,
  24. // indicates the grant for possible persisting on the URI.
  25. authPrefixUriPermission: true,
  26. // support distributed scheduling system start up multiple devices
  27. abilitySliceMultiDevice: true,
  28. // indicates that an ability using the service template is started regardless of whether the
  29. // host application has been started.
  30. startForegroundAbility: true,
  31. // install the specified ability if it's not installed.
  32. installOnDemand: true,
  33. // return result to origin ability slice
  34. abilitySliceForwardResult: true,
  35. // install the specified ability with background mode if it's not installed.
  36. installWithBackgroundMode: true
  37. },
  38. deviceId: "",
  39. bundleName: "com.example.startability",
  40. abilityName: "com.example.startability.MainAbility",
  41. uri: ""
  42. },
  43. },
  44. );
  45. )

启动远程PageAbility

导入模块

  1. import featureAbility from '@ohos.ability.featureAbility'
  1. FeatureAbility.startAbility(parameter: StartAbilityParameter)
  • 接口说明

    启动远程的ability(promise形式) 前提:通过deviceManager获取远程deviceid

  • 示例

  1. var promise = await ability.startAbility(
  2. {
  3. want:
  4. {
  5. deviceId: this.deviceId,
  6. bundleName: "com.example.test",
  7. abilityName: "com.example.test.MainAbility",
  8. },
  9. }
  10. );