首页 > 其他分享 >鸿蒙原生应用/元服务开发-Stage模型能力接口(九)上

鸿蒙原生应用/元服务开发-Stage模型能力接口(九)上

时间:2023-12-21 15:32:43浏览次数:19  
标签:原生 console Ability 鸿蒙 SystemCapability UIAbility AbilityRuntime log Stage

@ohos.app.ability.UIAbility (UIAbility)
一、说明

UIAbility是包含UI界面的应用组件,提供组件创建、销毁、前后台切换等生命周期回调,同时也具备组件协同的能力,组件协同主要提供如下常用功能。

Caller,由startAbilityByCall接口返回,CallerAbility(调用者)可使用Caller与CalleeAbility(被调用者)进行通信。

Callee,UIAbility的内部对象,CalleeAbility(被调用者)可以通过Callee与Caller进行通信。本模块首批接口从API version 9 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。本模块接口仅可在Stage模型下使用。

二、导入模块

import Ability from ‘@ohos.app.ability.UIAbility’;

三、属性

系统能力:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.AbilityCore

鸿蒙原生应用/元服务开发-Stage模型能力接口(九)上_生命周期


1.UIAbility.onCreate

onCreate(want: Want, param: AbilityConstant.LaunchParam): void;

Ability创建时回调,执行初始化业务逻辑操作。

系统能力:SystemCapability.Ability.AbilityRuntime.AbilityCore

参数:

鸿蒙原生应用/元服务开发-Stage模型能力接口(九)上_JSON_02


示例:

class myAbility extends Ability {

onCreate(want, param) {

    console.log('onCreate, want:' + want.abilityName);

}

}

2.UIAbility.onWindowStageCreate
onWindowStageCreate(windowStage: window.WindowStage): void

当WindowStage创建后调用。

系统能力:SystemCapability.Ability.AbilityRuntime.AbilityCore

参数:

鸿蒙原生应用/元服务开发-Stage模型能力接口(九)上_生命周期_03


示例:

class myAbility extends Ability {

onWindowStageCreate(windowStage) {

    console.log('onWindowStageCreate');

}

}

3.UIAbility.onWindowStageDestroy
onWindowStageDestroy(): void

当WindowStage销毁后调用。

系统能力:SystemCapability.Ability.AbilityRuntime.AbilityCore

示例:

class myAbility extends Ability {

onWindowStageDestroy() {

    console.log('onWindowStageDestroy');

}

}

4.UIAbility.onWindowStageRestore
onWindowStageRestore(windowStage: window.WindowStage): void

当迁移多实例ability时,恢复WindowStage后调用。

系统能力:SystemCapability.Ability.AbilityRuntime.AbilityCore

参数:

鸿蒙原生应用/元服务开发-Stage模型能力接口(九)上_JSON_04


示例:

class myAbility extends Ability {

onWindowStageRestore(windowStage) {

    console.log('onWindowStageRestore');

}

}

5.UIAbility.onDestroy
onDestroy(): void | Promise<void>;

Ability生命周期回调,在销毁时回调,执行资源清理等操作。

系统能力:SystemCapability.Ability.AbilityRuntime.AbilityCore

示例:

class myAbility extends Ability {

onDestroy() {

    console.log('onDestroy');

}

}

6.UIAbility.onForeground
onForeground(): void;

Ability生命周期回调,当应用从后台转到前台时触发。

系统能力:SystemCapability.Ability.AbilityRuntime.AbilityCore

示例:

class myAbility extends Ability {

onForeground() {

    console.log('onForeground');

}

}

7.UIAbility.onBackground
onBackground(): void;

Ability生命周期回调,当应用从前台转到后台时触发。

系统能力:SystemCapability.Ability.AbilityRuntime.AbilityCore

示例:

class myAbility extends Ability {

onBackground() {

    console.log('onBackground');

}

}
8.UIAbility.onContinue
onContinue(wantParam: { [key: string]: Object }): AbilityConstant.OnContinueResult;

当ability迁移准备迁移时触发,保存数据。

系统能力:SystemCapability.Ability.AbilityRuntime.AbilityCore

鸿蒙原生应用/元服务开发-Stage模型能力接口(九)上_JSON_05


示例:

import AbilityConstant from ‘@ohos.app.ability.AbilityConstant’;

class MyUIAbility extends Ability {

onContinue(wantParams) {

    console.log('onContinue');

    wantParams['myData'] = 'my1234567';

    return AbilityConstant.OnContinueResult.AGREE;

}

}

9.UIAbility.onNewWant
onNewWant(want: Want, launchParams: AbilityConstant.LaunchParam): void;

当传入新的Want,ability再次被拉起时会回调执行该方法。

系统能力:SystemCapability.Ability.AbilityRuntime.AbilityCore

鸿蒙原生应用/元服务开发-Stage模型能力接口(九)上_JSON_06


示例:

class MyUIAbility extends Ability {

onNewWant(want, launchParams) {

    console.log('onNewWant, want:' + want.abilityName);

    console.log('onNewWant, launchParams:' + JSON.stringify(launchParams));

 }

}

10.UIAbility.onDump
onDump(params: Array<string>): Array<string>;

转储客户端信息时调用。

系统能力:SystemCapability.Ability.AbilityRuntime.AbilityCore

鸿蒙原生应用/元服务开发-Stage模型能力接口(九)上_JSON_07


示例:

class myAbility extends Ability {

onDump(params) {

    console.log('dump, params:' + JSON.stringify(params));

    return ['params'];

}

}

11.UIAbility.onSaveState
onSaveState(reason: AbilityConstant.StateType, wantParam : {[key: string]: Object}): AbilityConstant.OnSaveResult;

该API配合appRecovery使用。在应用故障时,如果使能了自动保存状态,框架将回调onSaveState保存Ability状态。

系统能力:SystemCapability.Ability.AbilityRuntime.AbilityCore

鸿蒙原生应用/元服务开发-Stage模型能力接口(九)上_被调用者_08


示例:

import AbilityConstant from ‘@ohos.app.ability.AbilityConstant’;

class MyUIAbility extends Ability {

onSaveState(reason, wantParam) {

console.log('onSaveState');

  wantParam['myData'] = 'my1234567';

  return AbilityConstant.OnSaveResult.RECOVERY_AGREE;

}

}

本文根据HarmonyOS官方开发文档整理

标签:原生,console,Ability,鸿蒙,SystemCapability,UIAbility,AbilityRuntime,log,Stage
From: https://blog.51cto.com/u_14946066/8924484

相关文章

  • k8s Ingress使用详解(云原生kubernetes)
    k8s Ingress使用详解(云原生kubernetes)目录一、什么是Ingress二、Ingress工作机制三、Ingress核心概念四、Ingress工作原理五、Ingress使用搭建Ingress环境1、获取ingress-nginx2、创建ingress-nginx部署两组service创建tomcat-nginx.yaml配置Http访问代理如何通过外网......
  • 火山引擎ByteHouse基于云原生架构的实时导入探索与实践
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群随着企业降本增效、智能化数据决策需求的增强,传统的商业数据库已经难以满足和响应快速增长的业务诉求。在此背景下,云原生数据库成为大势所趋。云原生数据库基于云平台构建、部署和分发,具有高可用......
  • 原生、复杂流程操作、融合专家系统,澜码科技发布企业级Agent平台AskXBOT
    AI原生企业级Agent构建平台具备哪些特性?澜码AskXBOT平台揭晓答案澜码科技正式发布了AI原生企业级Agent平台AskXBOT,怎么看待这个产品?原生、复杂流程操作、融合专家系统,澜码科技发布企业级Agent平台AskXBOT企业真正需要的企业级AIAgent构建平台来了,澜码科技正式发布AskXBOT当......
  • 原生、复杂流程操作、融合专家系统,详解企业级Agent平台澜码AskXBOT
    文/王吉伟就在ChatGPT上线一年后的第一周,谷歌发布了其最强大模型Gemni,一度被称作GPT-4杀手锏,也被视作谷歌挣回面子的“雪耻”之作。然而没过几天,Gemini就被曝夸大营销,所谓的碾压GPT-4仅是嘴上功夫,通过与GPT-4不一致的测试标准混淆跑分,更被嘲讽是在趁OpenAI内部动荡搞事情。紧接着就......
  • 极智一周 | AI 算力国产化、通义开源、Gemini、鸿蒙、蔚来 And so on
    欢迎关注我的公众号[极智视界],获取我的更多技术分享大家好,我是极智视界,带来本周的[极智一周],关键词:AI算力国产化、通义开源、Gemini、鸿蒙、蔚来Andsoon。极智视界本周热点文章回顾,(1)AI算力国产化系列本周续写解读国产AI算力系列,输出六章。璧仞芯片禁令焦点,摩尔线程显卡......
  • The 2nd Universal Cup. Stage 3: Binjiang
    比赛链接没做完。A.AlmostPrefixConcatenation给定字符串\(S,T\)。称一个串是好的,当且仅当可以通过修改不超过一个字符使其成为\(T\)的前缀。称一个把\(S\)划分成\(n\)个非空子串\(S_1,S_2,\cdots,S_n\)的方案是合法的,当且仅当对于任意\(1\lei\len\),串\(S_i......
  • 使用 Taro 开发鸿蒙原生应用 —— 探秘适配鸿蒙 ArkTS 的工作原理
    背景在上一篇文章中,我们已经了解到华为即将发布的鸿蒙操作系统纯血版本——鸿蒙Next,以及各个互联网厂商开展鸿蒙应用开发的消息。其中,Taro作为一个重要的前端开发框架,也积极适配鸿蒙的新一代语言框架——ArkTS。本文将深入探讨Taro适配鸿蒙ArkTS框架的工作原理,接下来我们......
  • 鸿蒙开发之系统基础组件
    应用page的组成部分是组件组成的,系统提供了很多的组件Image/TextImage组件Image($r('app.media.logo')).width(78).height(509)使用string设置.width('78vp')//vpvm的像素单位使用定义资源json.width($r('app.float.logo_size'))在resources目录下......
  • 鸿蒙开发之容器组件
    容器组件类似于flex的布局,不过这里是固定Column是纵向Row是横向 当然,也提供了很多的flex相关的属性封装如何设置?第一种是Row(){Text($r(…))Text($r(…))}.justifyContent(FlexAlign.SpaceBetween)//在属性上设置.width('100%') 第二种是//......
  • 鸿蒙开发之初页面UIAbility
    UIAbility类似于一个整体的应用声明入口,比如小程序的app.js,比如安卓端的activity正常页面开发使用的是一个UIAbility即可,然后在一个UIAbility里面通过路由的形式进行跳转 关于路由导入importrouterfrom'@ohos.router'; 跳转router.pushUrl({url:'pag......