> 文档中心 > 鸿蒙Ability基础了解一下吧

鸿蒙Ability基础了解一下吧


一、Ability概念

1、Ability:能力

应用所具备能力的抽象,是应用程序的重要组成部分

2、分类

(1)Feature Ability(简称FA)

FA支持Page模板,用于提供与用户交互的能力

(2)Particle Ability(简称PA)

PA支持Service模板和Data模板,Service用于提供后台运行任务的能力,Data用于对外部提供统一的数据访问抽象

二、FA

1、Page Ability概念

(1)一个Page可以由一个或多个AbilitySlice(指应用的单个页面及其控制逻辑的总和)构成

(2)不同Page之间可以跳转,并可以指定跳转到目标Page中某个具体的AbilitySlice

2、Page Ability页面生命周期

(1)当用户进入、浏览、退出页面时,页面将有不同的状态,并回调不同的生命周期状态方法给外界

(2)Page Ability和AbilitySlice具有相似的生命周期回调方法,如下图所示:

 3、PageAbility生命周期回调方法详解

(1)onStart():当系统首次创建Page实例时,触发该回调

①对于一个Page实例,该回调在其生命周期过程中仅触发一次,Page在该逻辑后将进入INACTIVE状态

②必须重写该方法,并在此配置默认展示的AbilitySlice

(2)onActive():Page会在进入INACTIVE状态后来到前台,然后系统调用此回调

①Page在此之后进入ACTIVE状态,该状态是应用与用户交互的状态

②Page将保持在此状态,除非某类事件发生导致Page失去焦点

比如用户点击返回键或导航到其他Page

(3)onInactive():Page失去焦点时,系统将调用此回调

①此后Page进入INACTIVE状态

②可在此回调中执行Page失去焦点时要执行的操作

(4)onBackground():Page不再对用户可见,系统将调用此回调

①此回调通知开发者进行相应的资源释放,此后Page进入BACKGROUND状态

②在此回调中应释放Page不可见时无用的资源,或执行较为耗时的状态保存操作

(5)onStop():系统将要销毁Page时,会触发此回调函数

①此回调进行系统资源的释放

(6)onForeground():处于BACKGROUND状态的Page仍然驻留在内存中,当重新回到前台时(比如用户重新导航到此Page),系统将调用此回调

①在此之后Page的生命周期状态回到INACTIVE状态

②在此回调中重新申请在onBackground()中释放的资源,最后Page的生命周期状态进一步回到ACTIVE状态,系统将通过onActive()回调通知开发者用户

4、Intent

(1)对象之间传递信息的载体

(2)Intent的构成元素包括Operation与Parameters

如下图所示:

三、PA

1、Service Ability

主要用于后台运行任务(如执行音乐播放、文件下载等),但不提供用户交互界面,其特性如下:

(1)可由其他应用或Ability启动,即使用户切换到其他应用,Service仍将在后台继续运行

(2)是单实例的,即在一个设备上,相同的Service只会存在一个实例

(3)是在主线程里执行的,因此,如果在Service里面的操作时间过长,必须在Service里创建新的线程来处理,防止造成主线程阻塞,应用程序无响应

(4)Service Ability 生命周期,调用Service方法的不同,其生命周期有以下两种路径:

2、Data Ability

有助于应用管理其自身和其他应用存储数据的访问,并提供与其他应用共享数据的方法,并且既可用于同设备不同应用的数据共享,也支持跨设备不同应用的数据共享。

(1)对外提供对数据的增、删、改、查,以及打开文件等接口

(2)Data提供的接口的具体实现是由自己提供

四、代码例子

实现:点击跳转到新的Newabilityslice及新的Page

代码资源如下:

鸿蒙Ability基础了解一下吧-HarmonyOS文档类资源-CSDN文库https://download.csdn.net/download/qq_51478745/86512634

效果展示如下:鸿蒙Ability基础了解一下吧-CSDN直播icon-default.png?t=M85Bhttps://live.csdn.net/v/238064?spm=1001.2014.3001.5501

新能源吧