当前位置:   article > 正文

HarmonyOS Stage模型 UIAbility生命周期状态_uiability切换至前台时触发以下哪种状态

uiability切换至前台时触发以下哪种状态

UIAbility的生命周期包括Create、Foreground、Background、Destroy四个状态
  • Create状态,在UIAbility实例创建时触发,对应onCreate回调。可以在onCreate回调中进行相关初始化操作
    1. import UIAbility from '@ohos.app.ability.UIAbility';
    2. import window from '@ohos.window';
    3. export default class EntryAbility extends UIAbility {
    4. onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {
    5. // 应用初始化
    6. // ...
    7. }
    8. // ...
    9. }
  • Foreground状态,在UIAbility切换至前台时触发。对应onForeground回调,在UIAbility的UI页面可见之前,即UIAbility切换至前台时触发。可以在onForeground回调中申请系统需要的资源,或者重新申请在onBackground中释放的资源
    1. import UIAbility from '@ohos.app.ability.UIAbility';
    2. import window from '@ohos.window';
    3. export default class EntryAbility extends UIAbility {
    4. // ...
    5. onForeground() {
    6. // 申请系统需要的资源,或者重新申请在onBackground中释放的资源
    7. // ...
    8. }
    9. }
  • Background状态,在UIAbility切换至后台时触发。对应onBackground回调,在UIAbility的UI页面完全不可见之后,即UIAbility切换至后台时候触发。可以在onBackground回调中释放UI页面不可见时无用的资源,或者在此回调中执行较为耗时的操作,例如状态保存等
    1. import UIAbility from '@ohos.app.ability.UIAbility';
    2. import window from '@ohos.window';
    3. export default class EntryAbility extends UIAbility {
    4. // ...
    5. onBackground() {
    6. // 释放UI页面不可见时无用的资源,或者在此回调中执行较为耗时的操作
    7. // 例如状态保存等
    8. // ...
    9. }
    10. }
  •  Destroy状态,在UIAbility销毁时触发。可以在onDestroy回调中进行系统资源的释放、数据的保存等操作
    1. import UIAbility from '@ohos.app.ability.UIAbility';
    2. import window from '@ohos.window';
    3. export default class EntryAbility extends UIAbility {
    4. // ...
    5. onDestroy() {
    6. // 系统资源的释放、数据的保存等
    7. // ...
    8. }
    9. }
WindowStageCreate和WindowStageDestroy为窗口管理器(WindowStage)在UIAbility中管理UI界面功能的两个生命周期回调
  • WindowStageCreate回调,UIAbility实例创建完成之后,在进入Foreground之前,系统会创建一个WindowStage。每一个UIAbility实例都对应持有一个WindowStage实例。
    WindowStage为本地窗口管理器,用于管理窗口相关的内容,例如与界面相关的获焦/失焦、可见/不可见。

    可以在onWindowStageCreate回调中,设置UI页面加载、设置WindowStage的事件订阅。

    1. import UIAbility from '@ohos.app.ability.UIAbility';
    2. import window from '@ohos.window';
    3. export default class EntryAbility extends UIAbility {
    4. // ...
    5. onWindowStageCreate(windowStage: window.WindowStage) {
    6. // 设置UI页面加载
    7. // 设置WindowStage的事件订阅(获焦/失焦、可见/不可见)
    8. // ...
    9. windowStage.loadContent('pages/Index', (err, data) => {
    10. // ...
    11. });
    12. }
    13. // ...
    14. }
  • WindowStageDestroy回调,在UIAbility实例销毁之前,会先进入onWindowStageDestroy回调,我们可以在该回调中释放UI页面资源。
    1. import UIAbility from '@ohos.app.ability.UIAbility';
    2. import window from '@ohos.window';
    3. export default class EntryAbility extends UIAbility {
    4. // ...
    5. onWindowStageDestroy() {
    6. // 释放UI页面资源
    7. // ...
    8. }
    9. }
     
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/833441
推荐阅读
相关标签
  

闽ICP备14008679号