PageAbility是具备ArkUI实现的Ability,是开发者具体可见并可以交互的Ability实例。开发者通过IDE创建Ability时,IDE会自动创建相关模板代码。PageAbility相关能力通过单独的featureAbility实现,生命周期相关回调则通过app.js/app.ets中各个回调函数实现。
Ability生命周期状态说明:
UNINITIALIZED :未初始状态,为临时状态,PageAbility被创建后会由UNINITIALIZED状态进入INITIAL状态。
INITIAL :初始化状态,也表示停止状态,表示当前PageAbility未运行,PageAbility被启动后由INITIAL态进入ACTIVE状态。
INACTIVE :失去焦点状态,表示当前窗口已显示但是无焦点状态。
ACTIVE :前台激活状态,表示当前窗口已显示,并获取焦点。
BACKGROUND :后台状态,表示当前PageAbility退到后台,PageAbility在被销毁后由BACKGROUND状态进入INITIAL状态,或者重新被激活后由BACKGROUND状态进入ACTIVE状态
生命周期流转如下图:
featureAbility接口说明
featureAbility,即FA。PageAbility需要用到的featureAbility模块的接口如下:
接口名 |
描述 |
void startAbility(parameter: StartAbilityParameter) |
启动Ability |
Context getContext(): |
获取应用Context |
void terminateSelf() |
结束Ability |
bool hasWindowFocus() |
是否获取焦点 |
开发体验:
示例效果:
示例代码:
https://gitee.com/jltfcloudcn/jump_to/tree/master/FA_Model_TestMuster
参考文档:
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/fa-pageability-0000001281001030 |